2016-11-08 45 views
0

我曾经离开ALLOWED_HOSTS = []localhost127.0.0.1没有问题的其他一些主机去的时候,今天我遇到了这个错误: Invalid HTTP_HOST header问我来添加主机名ALLOWED_HOSTS,甚至当我评论从/etc/hosts中删除其他主机名。 我试过其他项目,它使用相同的设置。主机名当应在ALLOWED_HOSTS

为什么现在发生? ALLOWED_HOSTS有什么用?为什么它没有填充它之前工作?

回答

1

最近,Django released 1.10.3, 1.9.11 and 1.8.16解决安全问题。

继这些版本之后,即使在settings.DEBUG=True时,Django也会检查settings.ALLOWED_HOSTS。这可以防止DNS重新绑定攻击。

如果ALLOWED_HOSTS为空,那么Django将使用['localhost', '127.0.0.1', '::1']。但是,如果您使用任何其他主机,则现在需要将其添加到ALLOWED_HOSTS,即使当DEBUGTrue