访问网站时如果访问路径中缺少/,大多数中间件都会自动将路径补全,返回302或301跳转如下图,Location位置的域名会使用Host头的值。

这种情况实际上风险较低,难以构成Host头攻击。但是由于大多漏洞扫描器会将这种情况检测为Host头攻击,为了通过上级检查或各种审核,大多数甲方单位会要求修复漏洞,彻底解决问题。

该跳转路径不是web项目定义的,是中间件自动跳转的,所以不能用编写静态变量的方法修复,web项目中的全局过滤器也无法拦截。需要在nginx服务器层面配置才能修复

方法一:直接在宝塔的网站的配置里面添加,codeworker.cn改为你当前的域名
#防止Host头攻击start
   if ($Host != 'codeworker.cn')
   {
    return 403;
    }
#防止Host头攻击end

方法二:在nginx.conf添加,因为要做等保测评所以服务器采用的是https,下面的是443端口(https使用的)可以改成80端口(http使用的),可自行根据自己需要配置
#防止Host头攻击start()
server {
       listen 443 default;
       server_name _;
    #SSL-START SSL相关配置
    ssl_certificate    /www/server/panel/vhost/cert/codeworker.cn/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/codeworker.cn/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://$host$request_uri; 
    #SSL-END

       location / {
       return 403;
       }
       }
#防止Host头攻击end

此文章参考来源https://www.freebuf.com/articles/web/178315.html


稳定

产品高可用性高并发

贴心

项目群及时沟通

专业

产品经理1v1支持

快速

MVP模式小步快跑

承诺

我们选择声誉

坚持

10年专注高端品质开发
  • 返回顶部