您好,欢迎来到码863代码分享网! 请[登录] / [注册]

4个应该被使用的HTTP安全头部标签 简单4个头部安全多了

编辑

if(IS_SSL) header('Strict-Transport-Security: max-age=31536000');

header('X-Frame-Options: SAMEORIGIN');

header('X-XSS-Protection: 1; mode=block');

header('X-Content-Type-Options: nosniff');


1.CONTENT-SECURITY-POLICY(内容安全策略)

为什么使用:
怎么尽可能不遭受XSS攻击呢?众所周知,XSS攻击是指恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页时,嵌入其中Web里的html代码会被执行,从而达到恶意攻击用户的特殊目的。
那么如果有人在你的网页写了如下代码<script>alert(1);</script>浏览器能不能直接拒绝执行呢?
为了应对这些问题我们就需要在头部添加CONTENT-SECURITY-POLICY

如何使用
将下列编码写入HTTP头部中:
script-src: JavaScript code (biggest reason to use this header)
connect-src: XMLHttpRequest, WebSockets, and EventSource.
font-src: fonts
frame-src: frame ulrs
img-src: images
media-src: audio & video
object-src: Flash (and other plugins)
style-src: CSS

·特别注意:
Content-Security-Policy: script-src ‘self’ https://apis.google.com
这意味着脚本文件只能是来自当前文件或apis.google.com
另一个有用的特性就是你可以自动应用沙盒模式在整个站点。如果你想试一试效果,可以使用:
“Content-Security-Policy-Report-Only”头部;让浏览器返回一个你选的URL。
推荐阅读一下HTML5Rocks上的一篇CSP的介绍。

需要注意的问题:
1.IE只支持沙盘模式而且用的是“X”前缀;而安卓4.4则完全支持
2.它不能在你生成JavaScript动态(实践中并不常见)情况下防止XSS攻击

01

了解更多:

HTML5Rocks有非常好的介绍文章而 W3C规范也是深入学习的不错选择

 

2.X-FRAME-OPTIONS( X框架选项)

为什么要使用:
点击劫持是一种恶意攻击技术,用于跟踪网络用户,获取其私密信息或者通过让用户点击看似正常的网页来远程控制其电脑。点击劫持可以通过嵌入代码或者文本的形式出现,在用户毫不知情的情况下完成攻击,比如点击一个表面显示是“播放”某个视频的按钮,而实际上完成的操作却是将用户的社交网站个人信息改为“公开”状态。
而使用X-FRAME-OPTIONS能够阻止点击劫持的发生。

如何实现:
在HTTP头部输入:X-Frame-Options: DENY(使浏览器拒绝请求该页数据)
如果设置成’SAMEORIGIN’,则将允许同源数据;
如果设置成‘ALLOW FROM http://url-here.example.com’则将允许设置一个源(IE不支持)

需要注意的问题:
1.一些浏览器不支持这个header 或者其被整合到Content-Security-Policy 1.1之中
02

了解更多:
可访问Mozilla Developer Network关于此问题的文章。
Coding Horror 同样有比较不错的文章。

 

3.X-CONTENT-TYPE-OPTIONS (X内容类型选项)

为什么要使用:
允许用户上传文件是一件危险的事情,提供文件上传服务的危险性更大,而且很难做到万无一失。即使内容是通过MIME嗅探获取,要让浏览器进行二次内容类型猜测服务也不是一件容易的事情。而为了确保用户上传文件时的安全性就需要用到X-CONTENT-TYPE-OPTIONS

如何使用:
X-CONTENT-TYPE-OPTIONS 值为:‘nosniff’为正确。其作用是允许用户更有效的告知浏览器,用户确定其想做的事情。(GitHub 就是使用这种方法来保护用户)

需要注意的问题:
这个头部只只适用于IE和Chrome,不过根据你的用户,你还是可以保护65%的用户的。

03

了解更多:
FOX IT上有一篇关于MIME嗅探的优秀文章: MIME 嗅探: 特性还是漏洞? 
IT Security Stackexchange上也有个专题:X-Content-Type-Options真能防止内容嗅探攻击吗?

 

4.Strict-Transport-Security (交换安全措施)

为什么使用:
使用HTTPS可以为我们提供相对安全的环境。然而问题是:当我输入”onlinebanking.example.com” 到我的地址栏,浏
览器会默认使用HTTP协议,只有当服务器重定向时才会提供安全HTTPS来建立连接。而重定向的过程中,黑客能够进行中间人攻击。
为解决这个问题,Strict-Transport-Security头部应运而生。

如何使用:
HTTP的Strict-Transport-Security (HSTS)头部会强制浏览器使用HTTPS进行链接.比如:
你输入 https://hsts.example.com,而它会返回:Strict-Transport-Security: max-age=31536000; includeSubDomains
而输入http://hsts.example.com,浏览器也会自动链接https://hsts.example.com
只要HSTS头部一直有效,浏览器就会默认这么做。在一般情况下,在最后一次接收到包含HSTS头的HTTP回复后1年之内都保持有效。

需要注意的问题:

仅适用于Chrome和Firefox,但它已经成为官方的IETF标准,相信IE浏览器不久也将支持这个头部。

04


CopyRight 2002~2023 精通2100网 联系邮箱:qqtxt@163.com
版权所有:精通2100网 湘ICP备2023018646号-1
MYSQl共执行 3 个查询,用时 0.10501790046692 秒,PHP脚本用时 0.107098 秒,占用内存 0.551 MB,Gzip 已启用