文章字数:703,阅读全文大约需要2分钟
Http
请求头中有一些可以控制安全策略的部分,通过设置这些头可以提高网站安全系数
X-Frame-Options/Frame-Options
如果网站可以嵌入到IFRAME
元素中,则攻击者可以建一个假网页,在假网页中嵌套真实的网站。即使有跨站点请求伪造保护,这种攻击也是可能的,并且被称为clickjacking
创建X-Frame-Options
标题可以允许网站所有者决定哪些网站允许构建(嵌套)。
通常设置成
SAMEORIGIN
: 允许同源策略的资源嵌套DENY
: 拒绝任何资源嵌套
X-Frame-Options
标题已被弃用,将由内容安全策略中的Frame-Options指令替换,该指令仍处于活动开发阶段。但是,“X-Frame-Options”标题目前具有更广泛的支持,因此仍应实施安全措施。
Content-Security-Policy
内容安全策略(CSP)旨在web
程序通知浏览器有关应用程序预期行为(内容源、脚本源、插件类型、和其它远程资源),即设置引入的图像、脚本等资源的限制。可以防止跨站脚本攻击等。
例:CSP指定您的网站希望从任何URI加载图像,从受信任的媒体提供商(包括内容分发网络)列表中插入插件内容,以及仅从您控制的服务器加载脚本
1 | Content-Security-Policy:default-src'self'; img-src *; object-src media1.example.com media2.example.com * .cdn.example.com; script-src trustedscripts.example.com |
none
不匹配任何东西self
匹配当前域,单不包括子域。例如xxx.com
可以,www.xxx.com
不行unsafe-inline
允许内嵌脚本样式unsafe-eval
允许通过字符串动态创建脚本,如eval
,setTimeout
等
X-Content-Type-Options
如果服务器响应头X-Content-Type-Options: nosniff
则script
和styleSheet
元素会拒绝错误的MIME
类型的响应,防止MIME
类型的混淆的工具。
如果设置了X-Content-Type-Options: nosniff
参数,script
和styleSheet
标签就会过滤非指定的文件类型。正确的MIME
应该是text/javascript
这样的。
X-XSS-Protection
xss
自动过滤的配置,浏览器可以帮助防止跨站点脚本攻击(IE, Chrome, Safari支持)
推荐设置(开启xss防护,并且阻止而不是过滤用户注入的脚本)
1 | X-XSS-Protection:1; mode = block。 |
其它参数
1 | 0 – 关闭对浏览器的xss防护 |
X-XSS-Protection
标题已被弃用,被内容安全策略的Reflected-XSS
指令取代,但是该指令仍处于活动开发阶段。X-XSS-Protection
有更广泛的支持