Heroku:Python Flask应用程序 - 自动从https重定向到http

时间:2013-12-30 15:04:25

标签: ssl heroku https flask http-status-code-301

我正在为Facebook写一个应用程序,它需要是安全的。初始页面https://myapp.com加载完全正常。

但是当我点击指向https://myapp.com/link的链接时,Chrome会抱怨该应用正在尝试从不安全的来源加载。我在控制台中收到以下消息:

“[已屏蔽]”https://www.facebook.com/page/app_###“上的页面是通过HTTPS加载的,但是运行了来自”http://myapp.com/link/“的不安全内容:此内容也应通过HTTPS加载。”

现在该链接是一个带有https前缀的绝对URL,但显然该页面正在尝试从http版本加载。

我访问了域名并检查了Chrome控制台中的“网络”标签,看看发生了什么。发生以下情况:

  1. https://myapp.com/link的GET是301,永久移动。
  2. 然后重定向到http://myapp.com/link
  3. 据我所知,我的python代码中没有任何内容可以实现这一点,因此我怀疑Heroku的某些功能导致了这一点,但我无法找到其他任何有这个问题的人。

    作为旁注,我使用Flask-SSLify将重定向添加回https版本。此重定向有效,但Chrome仍会阻止该页面,因为它会通过不安全的版本。

1 个答案:

答案 0 :(得分:3)

在发布问题五分钟后,我觉得这样做很愚蠢,但这有点模糊。

事实证明问题是我试图访问的页面是“https://myapp.com/link/”,并带有斜杠。

https://myapp.com/link”重定向到“http://myapp.com/link/”。

我不知道为什么这个重定向没有保留协议,它可能是Flask或Heroku,虽然我怀疑它是Flask。无论它看起来像是一个错误。

希望这最终有助于其他人。