2024-04-29 08:26:40 发布
网友
据我所知,ALLOWED_HOSTS会在DEBUG=False时进行检查,以防止攻击者将自己的域指向您的站点。
ALLOWED_HOSTS
DEBUG=False
看起来希罗库的Custom Domains也做了同样的事情。
因此,与其在app.json中为Heroku Button添加所需的ALLOWED_HOSTS变量(因为它感觉多余,而且在您匆忙的时候很容易出错),不如设置ALLOWED_HOSTS = ['*']并允许Heroku验证请求是否到达了它们应该到达的位置?
app.json
ALLOWED_HOSTS = ['*']
下面的settings.py代表了Heroku在2015年最初撰写此答案时的文档内容。虽然我相对确定这里提供的ALLOWED_HOSTS设置是安全的,但在复制这些设置的任何其他设置之前,请查阅the up-to-date docs!
settings.py
原答案如下。更多信息见下文。
这正是你应该做的,每Getting Started with Django on Heroku:
# Parse database configuration from $DATABASE_URL import dj_database_url DATABASES['default'] = dj_database_url.config() # Honor the 'X-Forwarded-Proto' header for request.is_secure() SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') # Allow all host headers ALLOWED_HOSTS = ['*'] # Static asset configuration import os BASE_DIR = os.path.dirname(os.path.abspath(__file__)) STATIC_ROOT = 'staticfiles' STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), )
上面的链接不再有效,因为Heroku现在对入门文档的格式有点不同,它提供了预先构建的示例repo,而不是文档中的代码示例。当前的Python Getting Started Repo有ALLOWED_HOSTS = [],但也有DEBUG = True,根据the Django 2.1 docs触发了一个特殊情况
ALLOWED_HOSTS = []
DEBUG = True
ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]']
由于DEBUG = True在生产中不被推荐或是一个好主意,这个答案中的原始建议仍然是Heroku应用程序的生产就绪解决方案。在决定做什么之前,一定要阅读并理解Charlie Weems' brief answer。
完全公开:我没有在Django的最新版本中构建一个生产版Heroku应用程序。YMMV:)
请注意,Herokuremoved['*']来自2017年12月的入门指南。
['*']
我建议设置ALLOWED_HOSTS = ['.herokuapp.com']。
ALLOWED_HOSTS = ['.herokuapp.com']
即使Heroku的域服务提供了这种保护,如果移动到另一个托管服务,指定设置将提醒您更新配置。
警告:可能已过时
下面的
settings.py
代表了Heroku在2015年最初撰写此答案时的文档内容。虽然我相对确定这里提供的ALLOWED_HOSTS
设置是安全的,但在复制这些设置的任何其他设置之前,请查阅the up-to-date docs!原答案如下。更多信息见下文。
这正是你应该做的,每Getting Started with Django on Heroku:
设置.py
2018年更新
上面的链接不再有效,因为Heroku现在对入门文档的格式有点不同,它提供了预先构建的示例repo,而不是文档中的代码示例。当前的Python Getting Started Repo有
ALLOWED_HOSTS = []
,但也有DEBUG = True
,根据the Django 2.1 docs触发了一个特殊情况由于
DEBUG = True
在生产中不被推荐或是一个好主意,这个答案中的原始建议仍然是Heroku应用程序的生产就绪解决方案。在决定做什么之前,一定要阅读并理解Charlie Weems' brief answer。完全公开:我没有在Django的最新版本中构建一个生产版Heroku应用程序。YMMV:)
请注意,Herokuremoved
['*']
来自2017年12月的入门指南。我建议设置
ALLOWED_HOSTS = ['.herokuapp.com']
。即使Heroku的域服务提供了这种保护,如果移动到另一个托管服务,指定设置将提醒您更新配置。
相关问题 更多 >
编程相关推荐