主机名什么时候应该在 ALLOWED_HOSTS
When should the hostname be in ALLOWED_HOSTS
我曾经在使用 localhost
或 127.0.0.1
以外的主机名时离开 ALLOWED_HOSTS = []
没有问题,今天我遇到了这个错误:
Invalid HTTP_HOST header
要求我将主机名添加到 ALLOWED_HOSTS,即使我从 /etc/hosts
中注释掉了其他主机名。
我尝试了其他项目,它使用相同的设置。
为什么现在发生了? ALLOWED_HOSTS有什么用?还有为什么之前没填就成功了?
最近,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
,即使 DEBUG
是 True
我曾经在使用 localhost
或 127.0.0.1
以外的主机名时离开 ALLOWED_HOSTS = []
没有问题,今天我遇到了这个错误:
Invalid HTTP_HOST header
要求我将主机名添加到 ALLOWED_HOSTS,即使我从 /etc/hosts
中注释掉了其他主机名。
我尝试了其他项目,它使用相同的设置。
为什么现在发生了? ALLOWED_HOSTS有什么用?还有为什么之前没填就成功了?
最近,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
,即使 DEBUG
是 True