为什么不直接将 Django 的 ALLOWED_HOSTS 设置为 ["*"]?

问题描述 投票:0回答:1

我理解为什么主机标头的验证很重要,但我不明白为什么这是 Django 的责任。

设置的文档神秘地提到

即使在许多看似安全的 Web 服务器配置下也是可能的。

和主机头验证的文档提到了类似的内容:

因为即使看似安全的 Web 服务器配置也容易受到虚假主机标头的影响

本文档的先前版本建议配置您的 Web 服务器以确保它验证传入的 HTTP 主机标头。虽然仍然建议这样做,但在许多常见的 Web 服务器中,看似验证主机标头的配置实际上可能不会这样做。例如,即使 Apache [..]


到了 2024 年,是否仍有理由担心这些“许多”(未记录的)“看似安全的服务器配置”,或者我可以只使用一个健全的代理服务器并让它进行验证吗?将

ALLOWED_HOSTS
设置为
["*"]
可以消除部署时需要考虑的另一件事。

django security
1个回答
0
投票

职业偏执狂!

如果您在 Django 服务器暴露于整个互联网的环境中操作,则那里存在敌对行为者。如果您可以将可能地址的子集定义为您想要服务的地址,则可以立即减少威胁概况。如果您在某种“应该”能够抵御此类威胁的防火墙或代理后面运行,那么假设它可能无法履行其职责也没什么坏处。

© www.soinside.com 2019 - 2024. All rights reserved.