nginx - 使用 $http_host 危险吗?

nginx - 使用 $http_host 危险吗?

来自我自己的回答,我必须将其替换$host才能$http_host解决我的问题......

但这安全吗?

看起来好像所有的事情都是从标题开始$http_host暴露整体。HOST解释这里对我来说仍然不清楚...

有人知道为什么会$http_host更危险吗?


编辑

实际上,这是我的第三次编辑...读完此文后,我应该重新考虑我的立场: https://stackoverflow.com/questions/1459739/php-serverhttp-host-vs-serverserver-name-am-i-understanding-the-ma

我不确定 nginx 对此有何反应,但是你们认为 nginx 是否也会与 Chris 的测试结果一致,认为两者都不安全?

在什么情况下,你能想到使用 $http_host 进行攻击的方法?此外,为什么删除端口号很重要?

我理解有可能危害网络,并发送一些内容Host: fake or old ip,然后执行重新绑定攻击,正如我在其他地方读到的那样?

答案1

$host只是$http_host进行了一些处理(删除端口号和小写)并设置了默认值( ),因此在使用 时,客户端发送的标头server_name的“暴露”程度不会降低。不过这样做并没有什么危险。Host$http_host

答案2

需要检查应用程序中的所有标头值。虽然 nginx 可以为您的 Web 应用程序提供一些保护,但您不应该只依赖它。

我相信有可能编写一个容易通过 $host 和 $http_host 受到主机头滥用的 Web 应用程序,但这并不是避免在 nginx 配置中使用它的理由。

相关内容