漏洞报告:
检测到目标网站Content-Security-Policy响应头缺失。它的严重性低,但是可能会更大程度地暴露于各种跨站点注入攻击之下。
漏洞描述:
HTTP 响应头Content-Security-Policy允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点。
Content-Security-Policy响应头的缺失使得目标URL更易遭受跨站脚本攻击。
解决办法:
将您的服务器配置为发送“Content-Security-Policy”头。
实际操作如下:
(1)如果是iis环境,在网站根目录新建web.config配置文件,并在文件中加入以下代码:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <httpProtocol> <customHeaders> <!--检测到目标Content-Security-Policy响应头缺失--> <!-- <add name="Content-Security-Policy" value="default-src 'self'" /> --> </customHeaders> </httpProtocol> </system.webServer> </configuration>
(2)如果是Apache环境,在网站根目录新建.htaccess配置文件,并在文件中加入以下代码:
<IfModule mod_headers.c> Header set Content-Security-Policy "default-src 'self';" </IfModule>
如果在.htaccess中有其他伪静态规则,在放在伪静态规则前面即可,如下所示:
<IfModule mod_headers.c> Header set Content-Security-Policy "default-src 'self';" </IfModule> <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^article-([0-9]+)-([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=show&catid=$1&id=$2&page=$3 RewriteRule ^category-([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=lists&catid=$1&page=$2 </IfModule>
如果出现浏览页面报错、网页不正常、网站无法跳转、很多东西(比如css、js等文件)加载不出来等问题,可以将
Header set Content-Security-Policy "default-src 'self';"
改为
Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval';"
(1)'unsafe-inline'
代表允许行内代码执行。
(2)'unsafe-eval'
代表允许不安全的动态代码执行,比如 JavaScript的 eval()方法。
上述2个指令值默认情况下都是被CSP禁用的。理想情况下,通常不会希望在策略里保留这些表达式,但是没有它们,大多数现有的应用都会被阻断。
验证方法:
根据检测到目标Content-Security-Policy响应头缺失漏洞原理,通过从目标站点响应头信息中检查Content-Security-Policy配置情况进行漏洞验证。
您已成功复制微信号
leishi010
打开微信添加好友?
确定