WEB安全防护相关响应头(上)

本文介绍了WEB安全中一些重要的响应头,如X-Frame-Options防止点击劫持,X-Content-Type-Options避免IE浏览器内容类型误判,以及HTTP Strict Transport Security (HSTS)强制HTTPS加密传输,增强用户安全。文章讨论了这些响应头的原理、应用场景和浏览器兼容性,旨在提升网站对普通用户的保护。
摘要由CSDN通过智能技术生成

WEB 安全攻防是个庞大的话题,有各种不同角度的探讨和实践。即使只讨论防护的对象,也有诸多不同的方向,包括但不限于:WEB 服务器、数据库、业务逻辑、敏感数据等等。除了这些我们惯常关注的方面,WEB 安全还有一个重要的元素——网站的使用者

他们通常是完全没有 IT 知识的普通用户,网站方可以做点什么,以增加对这些普通用户的保护呢?以前较被忽略的步骤是:正确设置页面的响应头 (Response Headers) 。这类加入安全相关响应头的做法,往往是为了保护客户端/使用者的安全,减少使用者落入黑客的 WEB 陷阱的可能。

这里我们介绍一些较为常用的,和安全相关的响应头。当然,WEB 应用应该根据自己的实际情况部署和设置,并非盲目地一股脑地全部招呼上。

一、X-Frame-Options – 打破框框

从 2008 年开始,研发人员发现一种利用视觉误导,引诱使用者行为的可能,这种做法后来被命名为点击劫持 (Click Jacking)

攻击者的通常做法是,在自己的页面里通过框架(iframe)的形式,包含一个不属于它本站的页面。下面的示例代码里包含的就是 【163 邮箱】的设置页。而由黑客控制的父级页面本身可以是任何内容,它通过精确调整自己页面的内容和 iframe 的坐标及大小,再通过 CSS 的 opacity 透明度设置,把用户内容所在的 iframe 透明度设置为全透明。

以下为示例代码:

<style>
   .iframe{
    opacity: 0.4;}
  body {
     background: url(./sales.png) no-repeat fixed top;
  }   
</style>
</head>
<body>
<iframe src="https://m.reg.163.com/?email=1/#/email" width="100%" height="600px"  frameBorder="0" class="iframe" scrolling="no"allowtransparency="true">
</iframe>

得到的效果如下图:

pic
(点击查看大图)

请注意我们为了示例效果,特意设置了透明度仅仅为 {opacity:0.4;} ,保持页面上能隐约看到 163 邮箱的内容。但如果CSS代码设置为 {opacity:0;} ,163 邮箱的内容就会消弭于眼前,只留下这张促销图片。但访问者点到相应位置时,依然会触发对163邮箱的请求。这个就是点击劫持的原理。

早期 WEB 开发者应对这个问题的处理,是用 JavaScript 实现的,一般是判断当前 window 对象和 parent 对象是否一致,如果不一致,就执行“破框”跳转。但这个方式并不可靠!因为各种原因,客户端有可能禁止了 JavaScript 执行或代码被绕过,这样“破框”代码就失效了。在人们日益认识到这种攻击方式的危害性后,为统一解决这个问题,制定互联网规范的机构出手了,解决方案就是:

RFC7034
「 HTTP Header Field X-Frame-Options 」
https://tools.ietf.org/html/rfc7034

即引入了一个新的 HTTP 响应头。现在主流常用浏览器已全部支持这一响应头。具有这个响应头的资源,可以拒绝自己被非法站点的以下标签引用:

  • iFrame 标签
  • Frame 标签
  • Object 标签
  • Applet 标签
  • Embed 标签

这个头有三种选项,对应如下:

三种选项 具体含义
X-Frame-Options: DENY 完全不能被嵌入到 iframe、frame 等标签中
X-Frame-Options: SAMEORIGIN 只能被同源页面嵌入到 iframe 或者 frame 中
X-Frame-Opti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值