django 使用 heroku 设置变量 SECURE_PROXY_SSL_HEADER
Posted
技术标签:
【中文标题】django 使用 heroku 设置变量 SECURE_PROXY_SSL_HEADER【英文标题】:django setting variable SECURE_PROXY_SSL_HEADER with heroku 【发布时间】:2016-09-29 02:16:34 【问题描述】:我正在尝试使用 heroku 在 django 1.8 上设置与 https/ssl 相关的变量。但在 Django 1.8 教程中,它说我应该小心设置这个变量,特别是 "SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')"
在 django 1.8 教程中它说
警告
如果您设置此选项,您可能会在您的网站中打开安全漏洞 不知道你在做什么。如果你没有设置它,当你 应该。认真的。
在设置之前确保以下所有条件都为真(假设 上例中的值):
您的 Django 应用位于代理后面。 您的代理从所有传入请求中去除 X-Forwarded-Proto 标头。换句话说,如果最终用户在他们的 请求,代理将丢弃它。 您的代理设置 X-Forwarded-Proto 标头并将其发送给 Django,但仅限于最初通过 HTTPS 传入的请求。如果其中任何一个不正确,您应该将此设置设置为无 并找到另一种确定 HTTPS 的方法,可能是通过自定义 中间件。
当我使用 heroku 时,是否满足所有这些条件?我应该继续吗?
【问题讨论】:
【参考方案1】:是的 - 你应该没问题 - 请参阅 heroku 文档:https://devcenter.heroku.com/articles/http-routing#heroku-headers
【讨论】:
以上是关于django 使用 heroku 设置变量 SECURE_PROXY_SSL_HEADER的主要内容,如果未能解决你的问题,请参考以下文章
.env 文件中的环境变量在 django、heroku 的本地迁移期间不可用
使用 heroku 在生产中部署媒体和静态的 django 设置和 url 应该是啥样的?
在 Heroku 中使用 Sendgrid 为 Django 应用程序设置电子邮件
Heroku django 使用环境设置管理 shell (db, vars)
使用 South 在 Heroku 上设置 Django 时遇到问题 - 不断出现 ProgrammingError:关系不存在