nginx网站安全漏洞修复
前言:公司项目交付之前甲方进行了安全漏洞的扫描。大部分漏洞都是因为nginx响应没有加上仿攻击的响应头。记录一下漏洞以及解决方法
1.检测到目标URL存在相对路径覆盖(RPO)漏洞
该漏洞是因为一下原因:
--访问当前URL,检测响应头是否配置了x-content-type-options头;
--如果没有配置,则检查响应内容,若响应内容是没有DOCTYPE声明的HTML,且存在相对路径引用的css、js资源,则认为存在该漏洞。
解决方法:
1⃣️ 去掉响应内容里面的相对路径。这个是由于代码之前引入的css和js有相对路径引起的,虽然前端已经注释掉了,但是还是检测出来了。
2⃣️ 在nginx的http,server或者location中。我是添加到响应的server中的。
3⃣️ 检验是否添加成功,在网站中再次访问查看是否含有该响应头,若没有,则清除浏览器缓存再次访问。一般配置正确重新加载配置就会看到该响应头。
2.X-Frame-Options未配置
判断标准:检查响应头中是否有返回X-Frame-Options头,如果没有则报出漏洞。
3.检测到目标X-XSS-Protection响应头缺失
判断标准: 检查响应头中是否有返回X-Frame-Options头,如果没有则报出漏洞。
4.检测到目标X-Content-Type-Options响应头缺失
判断标准: 在原始请求响应中,若发现响应头中没有X-Content-Type-Options响应头,则认为存在漏洞。
5.检测到目标Content-Security-Policy响应头缺失
判断标准:在原始请求响应中,若发现响应头中没有Content-Security-Policy响应头,则认为存在漏洞。
响应的头的修复方式均通过设置nginx配置文件。
配置如下:
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options nosniff;
#防止跨站脚本 Cross-site scripting (XSS)
add_header X-XSS-Protection "1; mode=block";
#并不限制内容加载来源
add_header Content-Security-Policy "script-src * 'unsafe-inline' 'unsafe-eval'";
#将本站内部http链接自动改为https,并不限制内容加载来源
#add_header Content-Security-Policy "upgrade-insecure-requests;content *;img-src '*'";
网站响应结果如图:
备注: Content-Security-Policy头部设置的允许所有内容是不严谨的。我之所以这样设置是因为我网站上使用了很多外链。外链域名不可预知,建议使用严格的规范设置该安全响应白名单。规则可参考:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
本文地址:https://blog.csdn.net/unhejing/article/details/107606615