URL存在http host头攻击漏洞的解决办法
项目中遇到http host头攻击的解决办法,支持nginx,apache 两种办法。
以下是漏洞的一些内容:
安全漏洞描述
为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。例如,在php里用_SERVER[“HTTP_HOST”]。
但是这个header是不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成恶意代码的传入。
风险等级:高
解决办法
web应用程序应该使用SERVER_NAME而不是host header。 在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。
在Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单并开启UseCanonicalName选项。
本质上就是在服务侧鉴定请求来源, 非法来源直接过滤掉。
nginx 解决方案
打开nginx的网站配置文件,一般为 /etc/nginx/conf.d/xxx.conf
添加如下配置
1 |
|
重启nginx即可
1 |
|
Apache解决方案
打开Apache的配置 , 一般为 /conf/httpd.conf
添加如下配置:
1 |
|
重启apache即可
安全无小事!!!
URL存在http host头攻击漏洞的解决办法
https://www.hancher.top/2023/06/20/safe-http-url-header-attack/