当前位置:   article > 正文

nginx漏洞修复之检测到目标URL存在http host头攻击漏洞_nginx host头攻击漏洞

nginx host头攻击漏洞

漏洞说明

为了方便的获得网站域名,开发人员一般依赖于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;                                                                                                                                                                                                                                                                                                         
       }                                                                                                                                                        
    }                          
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

nginx 的 default_server 指令可以定义默认的 server 去处理一些没有匹配到 server_name 的请求,如果没有显式定义,则会选取第一个定义的 server 作为 default_server。

之后将后续的server_name配置上准确的可访问的地址,重启nginx即可

#其余server配置
server_name  127.0.0.1 192.168.1.1 www.test.com;
#重启
nginx -s reload
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/1003375
推荐阅读
相关标签
  

闽ICP备14008679号