漏洞说明
为了方便的获得网站域名,开发人员一般依赖于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选项。
修复过程
配置server块default_server,处理没请求到具体url的请求
server {
listen 80 default_server;
server_name _;
location / {
return 403;
}
}
nginx 的 default_server 指令可以定义默认的 server 去处理一些没有匹配到 server_name 的请求,如果没有显式定义,则会选取第一个定义的 server 作为 default_server。文章来源:https://www.toymoban.com/news/detail-588726.html
之后将后续的server_name配置上准确的可访问的地址,重启nginx即可文章来源地址https://www.toymoban.com/news/detail-588726.html
#其余server配置
server_name 127.0.0.1 192.168.1.1 www.test.com;
#重启
nginx -s reload
到了这里,关于nginx漏洞修复之检测到目标URL存在http host头攻击漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!