我有以下 nginx 配置
if ($host != mydomain.com) {
return 403;
}
当我点击 url http://127.0.0.1/test/test2/index.php(来自 POSTMAN)时,我得到 403。很好。但是在 Headers 中添加 Host -> mydomain.com 我得到 200。
当我添加add_header Host "$host";
nginx 配置时,我注意到 nginx 在其主机变量中有 mydomain.com。根据 nginx 文档,我知道在 http 请求中故意提到 Host 标头会覆盖 127.0.0.1。
但是通过这种方式,攻击者可以绕过 Cloudflare WAF 直接向 Web 服务器发送请求。那么阻止来自nginx的此类请求的解决方案是什么?
我尝试了以下解决方案,但对我不起作用。
https://www.digitalocean.com/community/questions/how-to-block-access-using-the-server-ip-in-nginx
https://blog.knoldus.com/nginx-disable-direct-access -通过-http-and-https-to-a-website-using-ip/