我在使用除ALLOWED_HOSTS = []
或localhost
以外的某个主机名时没有问题就离开了127.0.0.1
,今天我遇到了这个错误:
Invalid HTTP_HOST header
要求我将主机名添加到ALLOWED_HOSTS,即使我从/etc/hosts
注释掉了其他主机名。
我尝试了其他项目,它使用相同的设置。
为什么现在发生? ALLOWED_HOSTS有什么用?为什么以前没有填充它呢?
答案 0 :(得分:2)
最近,Django released 1.10.3, 1.9.11 and 1.8.16解决了安全问题。
在这些版本发布之后,即使settings.ALLOWED_HOSTS
,Django也会检查settings.DEBUG=True
。这可以防止DNS重新绑定攻击。
如果ALLOWED_HOSTS
为空,则Django将使用['localhost', '127.0.0.1', '::1']
。但是,如果您使用任何其他主机,则现在需要将其添加到ALLOWED_HOSTS
,即使DEBUG
为True