WAF_owasp-modsecurity-crs(Web Application Firewall应用防火墙)!!!!
当然针对于安全的角度我们设置防火墙,但是既然是防火墙就避免不了误删,但是防火墙又不能直接关闭或者强行修改规则,那么我们就按照防火墙的规则增加白名单就好了。
在开发一个功能时发现第三方的POST请求全都被Nginx403拒绝了,原因是因为回调的内容有大量的HTML内容误被认为是XSS攻击被防火墙拦截了,既然没办法规避就只好修改防火墙规则。
修改防火墙规则。防火墙的配置在服务器的nginx的owasp-modsecurity-crs下的rules中,其中900是用来添加白名单的配置文件,我们只需要在其中添加我们需要的白名单成员即可,如:我们需要添加对一个requestURI的白名单,在此文件下添加如下代码即可
1
SecRule REQUEST_URI “@contains /index.html” “phase:1,id:10**,log,pass,ctl:ruleEngine=off”
添加安全规则 请求路径包含 index.html 的所有请求 规避所有规则
同样的道理我们添加一个针对IP的白名单如下
2
SecRule REMOTE_ADDR “@ipMatch ***,***,***,*" "phase:1,id:10,log,pass,ctl:ruleEngine=off”
添加安全规则 IP 为 ,***,***, 的所有请求 规避所有规则
修改规则后需要reload Nginx
PS :当然这样显然权限可能有些高,如果想降低权限也可以修改ctl后面的事件然后关闭特定规则(如SQL注入或者XSS攻击),所有拦截规则详情、更多白名单示例可以参考(https://github.com/SpiderLabs/owasp-modsecurity-crs/tree/v3.2/dev/rules)
如果仍然有解决不了的问题欢迎交流~