1、详细描述
HTTP 响应头Content-Security-Policy允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点。Content-Security-Policy响应头的缺失使得目标URL更易遭受跨站脚本攻击。
2、解决办法
将您的服务器配置为发送“Content-Security-Policy”头。对于 Apache,请参阅:http://httpd.apache.org/docs/2.2/mod/mod_headers.html
对于 IIS,请参阅:https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx
对于 nginx,请参阅:http://nginx.org/en/docs/http/ngx_http_headers_module.html
3、验证方法
根据检测到目标Content-Security-Policy响应头缺失漏洞原理,通过从目标站点响应头信息中检查Content-Security-Policy配置情况进行漏洞验证。
4、我用的是nginx,所以附上nginx的解决方法
注:经过我的测试,配置要放到server{}里面。放到http{}中是不起作用的。
http {
server {
add_header Content-Security-Policy "default-src 'self'; style-src * 'unsafe-inline'; img-src * data:; object-src 'self'; script-src * 'unsafe-eval' 'unsafe-inline'; font-src * data:; worker-src * blob:;";
}
}
5、各个配置项的说明