新萄京娱乐场.2959.com 5

页面中的,防护与检验【新萄京娱乐场.2959.com】

让浏览器不再展现 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改造之后,大家能够在数不尽页面中看出如下警报:

新萄京娱乐场.2959.com 1

有的是营业对 https 未有本事概念,在填充的数量中难免出现 http
的财富,体系变得壮大,出现大意和尾巴也是不可制止的。

摘要

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

攻击方式 防护方式 说明
点击劫持(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 —–

CSP设置upgrade-insecure-requests

万幸 W3C 专业组怀想到了大家进级 HTTPS 的不便,在 201五 年 一月份就出了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
提供的3个 demo:

新萄京娱乐场.2959.com 2

可是令人不解的是,那几个资源发出了三回呼吁,猜度是浏览器实现的 bug:

新萄京娱乐场.2959.com 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 四3.0,可是我信任,CSP 将成为今后 web
前端安全努力关切和行使的故事情节。而 upgrade-insecure-requests 草案也会异常快进入
HummerH贰FC 情势。

从 W3C
职业组给出的 example,能够见到,这一个设置不会对国外的
a 链接做拍卖,所以能够放心使用。

1 赞 收藏
评论

新萄京娱乐场.2959.com 4

点击劫持(Clickjacking)

点击要挟,clickjacking
是1种在网页司令员恶意代码等隐蔽在看似没有害的剧情(如开关)之下,并引诱用户点击的招数,又被叫做界面伪装(UI
redressing)。举个例子用户接受壹封饱含1段录制的电子邮件,但里面的“播放”按键并不会真正播放录像,而是被期骗进入八个购物网址。

新萄京娱乐场.2959.com 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大切诺基IGIN:表示该页面能够在同等域名页面的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");

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

跨站脚本常常指的是透过利用支付时预留的狐狸尾巴,注入恶意指令代码(JavaScript/Java/VBScript/ActiveX/Flash/HTML等)到网页,使用户加载并实行攻击者恶意创立的主次。攻击者或然获得更加高的权力、私密网页、会话和cookie等种种内容。近来有三种不相同的
HTTP 响应头能够用来防范 XSS 攻击,它们是:

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

X-XSS-Protection

HTTP X-XSS-Protection 响应头是Internet
Explorer,Chrome和Safari的一个意义,当检测到跨站脚本攻击
(XSS)时,浏览器将适可而止加载页面。配置选项:0 不准XSS过滤。一启用XSS过滤(平时浏览器是暗许的)。
假诺检查测试到跨站脚本攻击,浏览器将免除页面(删除不安全的壹部分)。mode=block
启用XSS过滤,
若是检查评定到攻击,浏览器将不会免去页面,而是阻止页面加载。report=reporting-U智跑I
启用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)

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";

发表评论

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