【发布时间】:2018-09-07 23:27:09
【问题描述】:
当谈到 django 如何使用 ALLOWED_HOSTS 中的元组来验证主机时,我有点困惑。它是使用get_host() 调用还是使用request.META?
Django 文档针对ALLOWED_HOSTS 指出以下内容:
此验证仅适用于
get_host();如果您的代码直接从request.META访问Host标头,则您将绕过此安全保护。
如果我创建使用get_host() 获取主机并将其与已批准主机名列表进行比较的中间件,如果域不在列表中,则传递用户404,我认为这基本上是复制ALLOWED_HOSTS 功能?
我问这个问题是因为我确实需要写中间件来代替ALLOWED_HOSTS。随着越来越多的用户注册,批准的主机列表会随着时间的推移而增长。结果,我验证的元组是动态的,因此,我不能在 Django 中使用默认的 ALLOWED_HOSTS 配置。
谢谢!
【问题讨论】:
-
你读过
get_host的实现吗?这很不言自明。 -
不。我只是想知道 django 使用 ALLOWED_HOSTS 进行的主机验证是否使用了 get_host() 方法。
标签: django django-settings django-middleware