关于启用 HTTPS 的片段经历分享

让浏览器不再显得 https 页面中的 http 请求警报

2015/08/26 · 基本功技术 ·
HTTPS,
浏览器

最初的小说出处:
李靖(@Barret李靖)   

HTTPS 是 HTTP over Secure Socket Layer,以安全为指标的 HTTP 通道,所以在
HTTPS 承载的页面上不允许出现 http 请求,一旦出现正是唤醒或报错:

Mixed Content: The page at ‘‘ was loaded over
HTTPS, but requested an insecure image ‘’.
This content should also be served over HTTPS.

HTTPS改造之后,大家能够在众多页面中阅览如下警报:

金沙js333娱乐场 1

众多营业对 https 没有技术概念,在填充的多寡中难免出现 http
的财富,种类庞大,出现大意和漏洞也是不可防止的。

摘要

时下有不少的恶心抨击都以以网站及其用户作为靶子,本文将不难介绍在 Web
服务器一侧的安全加固和测试方法。

攻击方式 防护方式 说明
点击劫持(clickjacking) X-Frame-Options Header —–
基于 SSL 的中间人攻击(SSL Man-in-the-middle) HTTP Strict Transport Security —–
跨站脚本(Cross-site scripting,XSS) X-XSS-Protection、Content-Security-Policy、X-Content-Type-Options —–

关于启用 HTTPS 的局地经验分享

2015/12/04 · 基本功技术 ·
HTTP,
HTTPS

原稿出处:
imququ(@屈光宇)   

趁着国内网络环境的无休止恶化,各个篡改和绑架数见不鲜,越多的网站精选了全站
HTTPS。就在今天,免费提供证件服务的 Let’s
Encrypt 项目也规范开放,HTTPS 十分的快就会成为
WEB 必选项。HTTPS 通过 TLS
层和证明机制提供了剧情加密、身份认证和数据完整性三大效果,能够有效预防数据被查看或歪曲,以及防备中间人作伪。本文分享部分启用
HTTPS 进度中的经验,重点是什么样与部分新出的安全规范合营使用。至于 HTTPS
的布局及优化,在此以前写过不少,本文不重复了。

CSP设置upgrade-insecure-requests

幸而 W3C 工作组考虑到了咱们升级 HTTPS 的费力,在 2014 年 二月份就出了2个 Upgrade Insecure Requests 的草案,他的法力便是让浏览器自动升级请求。

在我们服务器的响应头中参与:

header(“Content-Security-Policy: upgrade-insecure-requests”);

1
header("Content-Security-Policy: upgrade-insecure-requests");

我们的页面是 https 的,而以此页面中富含了汪洋的 http
能源(图片、iframe等),页面一旦发现存在上述响应头,会在加载 http
能源时自动替换成 https 请求。能够查看 google
提供的七个 demo:

金沙js333娱乐场 2

然则让人不解的是,那个财富发出了一遍呼吁,估计是浏览器实现的 bug:

金沙js333娱乐场 3

自然,假如大家不方便人民群众在服务器/Nginx
上操作,也能够在页面中投入 meta 头:

XHTML

<meta http-equiv=”Content-Security-Policy”
content=”upgrade-insecure-requests” />

1
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />

如今支撑这几个设置的还唯有 chrome 43.0,可是自身信任,CSP 将成为今后 web
前端安全努力关怀和利用的剧情。而 upgrade-insecure-requests 草案也会快捷进入
帕杰罗FC 形式。

从 W3C
工作组给出的 example,能够看来,那个装置不会对别国的
a 链接做处理,所以能够放心使用。

1 赞 收藏
评论

金沙js333娱乐场 4

点击恐吓(Clickjacking)

点击威迫,clickjacking
是一种在网页上校恶意代码等隐蔽在相近无害的始末(如按钮)之下,并引诱用户点击的手段,又被称之为界面伪装(UI
redressing)。例如用户接受一封饱含一段录制的电子邮件,但内部的“播放”按钮并不会真的播放录像,而是被诈骗行为进入壹个购物网站。

金沙js333娱乐场 5

针对点击劫持攻击,开放Web应用程序安全项目(Open Web Application Security
Project
,OWASP)(非营利团体,其目标是赞助个人、公司和机构来发现和动用可重视软件)
提供了一份指导,《Defending_with_X-Frame-Options_Response_Headers》

X-Frame-Options HTTP 响应头是用来给浏览器提醒允许二个页面可不可以在 frame
标签 可能 object
标签中突显的号子。网站能够使用此作用,来保管本身网站的内容从未被嵌到旁人的网站中去,也为此幸免了点击威逼(clickjacking) 的口诛笔伐。DENY:表示该页面不允许在 frame
中呈现,即就是在同样域名的页面中嵌套也不容许。SAMEO帕JeroIGIN:表示该页面可以在同一域名页面的frame 中显示。ALLOW-FROM uri:表示该页面可以在内定来源的 frame
中显得。配置如下:

//HAProxy
http-response set-header X-Frame-Options:DENY
//Nginx
add_header X-Frame-Options "DENY";
//Java
response.addHeader("x-frame-options","DENY");

理解 Mixed Content

HTTPS 网页中加载的 HTTP 财富被称为 Mixed
Content(混合内容),不一致浏览器对 Mixed Content 有差异的拍卖规则。

跨站脚本 克罗丝-site scripting (XSS)

跨站脚本平时指的是经过应用开发时预留的尾巴,注入恶意指令代码(JavaScript/Java/VBScript/ActiveX/Flash/HTML等)到网页,使用户加载并实施攻击者恶意创制的次序。攻击者恐怕得到更高的权柄、私密网页、会话和cookie等各个内容。近日有三种不一样的
HTTP 响应头能够用来严防 XSS 攻击,它们是:

  • X-XSS-Protection
  • Content-Security-Policy

早期的 IE

初期的 IE 在意识 Mixed Content
请求时,会弹出「是或不是只查看安全传送的网页内容?」那样2个模态对话框,一旦用户选择「是」,全部Mixed Content 能源都不会加载;选用「否」,全体财富都加载。

X-XSS-Protection

HTTP X-XSS-Protection 响应头是Internet
Explorer,Chrome和Safari的1个效益,当检查和测试到跨站脚本攻击
(XSS)时,浏览器将告一段落加载页面。配置选项:0 禁止XSS过滤。1
启用XSS过滤(日常浏览器是暗中认可的)。
要是检查和测试到跨站脚本攻击,浏览器将解除页面(删除不安全的一些)。mode=block
启用XSS过滤,
若是检查和测试到攻击,浏览器将不会去掉页面,而是阻止页面加载。report=reporting-UEnclaveI
启用XSS过滤。 若是检查和测试到跨站脚本攻击,浏览器将解除页面并选拔 CSP
report-uri 指令的职能发送违规报告。参考小说《The misunderstood
X-XSS-Protection》:

//HAProxy
http-response set-header X-XSS-Protection: 1;mode=block
//Nginx
add_header X-Xss-Protection "1; mode=block" always;;

浏览器援救处境:

Chrome Edge Firefox Internet Explorer Opera Safari
(Yes) (Yes) No 8.0 (Yes) (Yes)

正如新的 IE

相比较新的 IE
将模态对话框改为页面头部的提醒条,没有后边那么苦恼用户。而且默许会加载图片类
Mixed Content,别的如 JavaScript、CSS
等财富依旧会依照用户挑选来决定是或不是加载。

Content-Security-Policy

内容安全性政策(Content Security
Policy,CSP)便是一种白名单制度,显明报告客户端哪些外部能源(脚本/图片/音录制等)能够加载和实践。浏览器能够拒绝任何不出自预订义地点的别样内容,从而防止外部注入的脚本和任何此类恶意内容。设置
Content-Security-Policy Header:

//HAProxy:
http-response set-header Content-Security-Policy:script-src https://www.google-analytics.com;https://q.quora.com
//Nginx
add_header Content-Security-Policy-Report-Only "script-src https://www.google-analytics.com https://q.quora.com";

当代浏览器

当代浏览器(Chrome、Firefox、Safari、Microsoft 艾德ge),基本上都遵循了
W3C 的 Mixed Content 规范,将
Mixed Content 分为Optionally-blockable 和 Blockable 两类:

Optionally-blockable 类 Mixed Content
包涵那么些危险较小,纵然被中间人歪曲也无大碍的能源。现代浏览器暗中同意会加载这类能源,同时会在控制台打字与印刷警告音讯。那类财富包涵:

  • 通过 <img> 标签加载的图样(包涵 SVG 图片);
  • 通过 <video>金沙js333娱乐场 , / <audio> 和 <source> 标签加载的录制或音频;
  • 预读的(Prefetched)资源;

而外全体的 Mixed Content
都以 Blockable,浏览器必须禁止加载那类能源。所以现代浏览器中,对于
HTTPS 页面中的 JavaScript、CSS 等 HTTP
能源,一律不加载,直接在控制台打字与印刷错误消息。

发表评论

电子邮件地址不会被公开。 必填项已用*标注