安全相关的head头
与安全相关的head头包括
参考网站:https://developer.mozilla.org/en-US/docs/Web/HTTP
Content-Security-Policy(CSP):禁止调用其他网站的资源
Strict-Transport-Security(HSTS):http访问的用户,重定向为https
X-Content-Type-Options(XCTO):ie浏览器中文档类型自动判断功能
X-XSS-Protection(XSS Filter):ie的防浏览器中阻止XSS攻击的配置
X-Frame-Options(XFO):限制<iframe>标签
CSP:
This document defines a mechanism by which web developers can control the resources which a particular page can fetch or execute, as well as a number of security-relevant policy decisions.
参考网址
首先,上官网:http://w3c.github.io/webappsec-csp/
之后,中文网址:http://open.chrome.360.cn/extension_dev/contentSecurityPolicy.html#H2-0
https://linux.cn/article-5848-1.html(这个网页的设置说明很详细)
https://developer.mozilla.org/zh-CN/docs/Web/Security/CSP/CSP_policy_directives
之后,中文博客:http://www.2cto.com/Article/201307/230739.html
配置方法:
HttpServletResponse res = (HttpServletResponse) arg1; res.setHeader("Content-Security-Policy", "default-src 'self';script-src 'self' 'unsafe-inline';style-src 'self' 'unsafe-inline'");
或者
<meta http-equiv="Content-Security-Policy" content="default-src 'self';script-src 'self' 'unsafe-inline' 'unsafe-eval';style-src 'self' 'unsafe-inline' 'unsafe-eval'">
'unsafe-eval'
允许使用 eval() 等通过字符串创建代码的方法。两侧单引号是必须的。
HSTS
参考网址 https://linux.cn/article-5266-1.html
简介: HTTP 严格传输安全(HSTS)是一种安全功能,web 服务器通过它来告诉浏览器仅用 HTTPS 来与之通讯,而不是使用 HTTP。
这是在服务器上配置的.
XCTO
参考网址 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options http://blog.sina.com.cn/s/blog_6cda35350102vvr6.html
简介 ie的文档类型自动判断功能
配置 X-Content-Type-Options:nosniff 选项来关闭IE的文档类型自动判断功能。
XXP
参考网址 https://blogs.msdn.microsoft.com/ieinternals/2011/01/31/controlling-the-xss-filter/
http://www.2cto.com/article/201506/406232.html
简介
X-XSS-Protection is a HTTP header understood by Internet Explorer 8 (and newer versions).
This header lets domains toggle on and off the "XSS Filter" of IE8, which prevents some categories of XSS attacks.
IE8 has the filter activated by default, but servers can switch if off by setting
配置方式
X-XSS-Protection: 1; mode=block
0 – 关闭对浏览器的xss防护 1 – 开启xss防护 1; mode=block – 开启xss防护并通知浏览器阻止而不是过滤用户注入的脚本。
1; report=http://site.com/report – 这个只有chrome和webkit内核的浏览器支持,这种模式告诉浏览器当发现疑似xss攻击的时候就将这部分数据post到指定地址。
X-Frame-Options(XFO)
X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 <frame>
, <iframe>
或者 <object>
中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。
参考网址:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options
X-Frame-Options 有三个值:
DENY
- 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
SAMEORIGIN
- 表示该页面可以在相同域名页面的 frame 中展示。
ALLOW-FROM uri
- 表示该页面可以在指定来源的 frame 中展示。
换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为
SAMEORIGIN
,那么页面就可以在同域名页面的 frame 中嵌套。
另外,在<meta>中设置是不好用的
根据实际测试,在apache中设置如下:
1.把LoadModule headers_module modules/mod_headers.so前面的#去掉
2.加入
<IfModule headers_module>
Header set X-Frame-Options: DENY
</IfModule>
官方配置如下:
直接在httpd.conf里添加
Header always append X-Frame-Options DENY
实际测试发现,
<IfModule headers_module>
Header set X-Frame-Options: DENY
</IfModule>更好用一些,
而用官方的配置时,经常会出现head中没添加上的情况
其他的以后陆续补充