针对点击劫持攻击

让浏览器不再显得 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更改之后,大家得以在重重页面中见到如下警报:

图片 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 -----

CSP设置upgrade-insecure-requests

还好 W3C 职业组牵挂到了大家进级 HTTPS 的困难,在 二〇一六 年 十一月份就出了一个 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:

图片 2

可是令人不解的是,那个财富发出了一遍呼吁,推测是浏览器达成的 bug:

图片 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 草案也会十分的快步入PAJEROFC 形式。

从 W3C 职业组给出的 example,能够看见,这么些装置不会对外国的 a 链接做处理,所以能够放心使用。

1 赞 收藏 评论

图片 4

点击吓唬(Clickjacking)

点击威吓,clickjacking 是一种在网页元帅恶意代码等隐讳在看似无毒的剧情(如按键)之下,并诱使客户点击的手法,又被喻为分界面伪装(UI redressing)。比方顾客收取一封包罗一段录像的电子邮件,但里面包车型地铁“播放”按键并不会真正播放视频,而是被欺诈步入一个购物网址。

图片 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");

跨站脚本 Cross-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过滤。1 启用XSS过滤(平时浏览器是暗许的)。 借使检测到跨站脚本攻击,浏览器将免去页面(删除不安全的片段)。mode=block 启用XSS过滤, 倘若检查实验到攻击,浏览器将不会免去页面,而是阻止页面加载。report=reporting-ULacrosseI 启用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";

MIME-Sniffing

MIME-Sniffing(首假诺Internet Explorer)使用的一种技艺,它尝试推测财富的 MIME 类型(也称为 Content-Type 内容类型)。那代表浏览器能够忽略由 Web 服务器发送的 Content-Type Header,并不是尝尝剖析能源(比方将纯文本标识为HTML 标签),根据它认为的能源(HTML)渲染资源并不是服务器的概念(文本)。就算那是二个极其平价的法力,能够考订服务器发送的错误的 Content-Type,不过心怀不轨的人得以恣心纵欲滥用这一风味,那使得浏览器和客商大概被恶意抨击。举例,如通过精心制作四个图像文件,并在里头嵌入可以被浏览器所显示和实施的HTML和t代码。《Microsoft Developer Network:IE8 Security Part V: Comprehensive Protection》:

Consider, for instance, the case of a picture-sharing web service which hosts pictures uploaded by anonymous users. An attacker could upload a specially crafted JPEG file that contained script content, and then send a link to the file to unsuspecting victims. When the victims visited the server, the malicious file would be downloaded, the script would be detected, and it would run in the context of the picture-sharing site. This script could then steal the victim’s cookies, generate a phony page, etc.

//HAProxy
http-response set-header X-Content-Type-Options: nosniff
//Nginx
add_header X-Content-Type-Options "nosniff" always;

SSL Strip Man-in-The-Middle Attack

高中档人攻击中攻击者与广播发表的互相分别创立独立的联系,并沟通其所接受的数目,使通信的两端认为她们正在通过一个私密的连天与对方间接对话,但其实整个会话都被攻击者完全调节。举例,在三个未加密的Wi-Fi 有线接入点的收受范围内的中间人攻击者,能够将本身视作三个在那之中人插入那些网络。强制用户使用HTTP严苛传输安全(HTTP Strict Transport Security,HSTS)。 HSTS 是一套由 IETF 公布的互连网安全战术机制。Chrome 和 Firefox 浏览器有三个放置的 HSTS 的主机列表,网址能够采取选拔 HSTS 攻略强制浏览器选取 HTTPS 左券与网址实行通讯,以压缩会话威胁危害。

图片 6

服务器设置下列选项能够强制全部客商端只好因而 HTTPS 连接:

//HAProxy
http-response set-header Strict-Transport-Security max-age=31536000;includeSubDomains;preload
//Nginx
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload; always;'

暴露 URL (HTTPS > HTTP Sites)

Referrer 新闻被大面积用于互连网访谈流量来源分析,它是东食西宿网址数量计算服务的功底,举个例子 Google Analytics 和 AWStats,基于Perl的开源日志深入分析工具。一样的这一特色也会很轻巧被恶意使用,造成客户敏感消息泄露,举个例子将客商SESSION ID 放在 U安德拉L 中,第三方获得就恐怕见到别人登入后的页面内容。2016年,W3C 公布了 Referrer Policy 的新草案,开垦者起首有权决定本人网站的 Referrer Policy。不过独有 Chrome/Firefox 浏览器较新的本子的能够提供支撑。

Feature Chrome Firefox Edge、Internet Explorer、 Opera、Safari
Basic Support 56.0 50.0 (No)
same-origin (No)1 52.0 (No)
strict-origin (No)1 52.0 (No)
strict-origin-when-cross-origin (No)1 52.0 (No)

Referrer-Policy选项列表:

  • Referrer-Policy: no-referrer //整个 Referer 首部会被移除。访谈来源新闻不趁着央浼一起发送。
  • Referrer-Policy: no-referrer-when-downgrade //暗许选项
    //援用页面包车型地铁地址会被发送(HTTPS->HTTPS),降级的气象不会被发送 (HTTPS->HTTP)
  • Referrer-Policy: origin //在任何动静下,仅发送文书的源作为援引地址
  • Referrer-Policy: origin-when-cross-origin //对于同源的伸手,会发送完整的U福睿斯L作为援引地址,可是对于非同源央浼仅发送文书的源
  • Referrer-Policy: same-origin //对于同源的伸手会发送引用地址,不过对于非同源供给则不发送援引地址音讯。
  • Referrer-Policy: strict-origin //在同等安全等级的意况下,发送文书的源作为引用地址(HTTPS->HTTPS)
  • Referrer-Policy: strict-origin-when-cross-origin //对于同源的呼吁,会发送完整的UOdysseyL作为引用地址
  • Referrer-Policy: unsafe-url //无论是不是同源央求,都发送完整的 URAV4L(移除参数音信之后)作为援用地址。

笔者们不可能不保障客户从全 HTTPS 站点跳转到 HTTP 站点的时候,未有中间人能够嗅探出客商实际的 HTTPS U宝马X5L,Referrer Policy 设置如下:

//HAProxy
http-response set-header Referrer-Policy no-referrer-when-downgrade
//Nginx
add_header Referrer-Policy: no-referrer-when-downgrade
Source Destination Referrer (Policy :no-referrer-when-downgrade)
https://test.com/blog1/ http://test.com/blog2/ NULL
https://test.com/blog1/ https://test.com/blog2/ https://test.com/blog1/
http://test.com/blog1/ http://test.com/blog2/ http://test.com/blog1/
http://test.com/blog1/ http://example.com http://test.com/blog1/
http://test.com/blog1/ https://example.com http://test.com/blog1/
https://test.com/blog1/ http://example.com NULL

测试

达州商讨员 斯科特 Helme 进献了叁个至绝对的赞的网址 [https://securityheaders.io/],能够解析本人站点的Header(报文头),并提议创新安全性的建议。示比方下(情状参数,Operating System: CentOS 7 ; haproxy 1.5.14 ; nginx 1.12.0)。

  • 加强前的检查实验结果
![](https://upload-images.jianshu.io/upload_images/1037849-af2f51678e583572.png)

加固前
  • 巩固后的检查实验结果
![](https://upload-images.jianshu.io/upload_images/1037849-3d4af6ce7042c7b9.png)

加固后

本文由2138acom太阳集团app发布于太阳集团2138备用网址,转载请注明出处:针对点击劫持攻击

相关阅读