我正在为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控制台中的“网络”标签,看看发生了什么。发生以下情况:
据我所知,我的python代码中没有任何内容可以实现这一点,因此我怀疑Heroku的某些功能导致了这一点,但我无法找到其他任何有这个问题的人。
作为旁注,我使用Flask-SSLify将重定向添加回https版本。此重定向有效,但Chrome仍会阻止该页面,因为它会通过不安全的版本。
答案 0 :(得分:3)
在发布问题五分钟后,我觉得这样做很愚蠢,但这有点模糊。
事实证明问题是我试图访问的页面是“https://myapp.com/link/”,并带有斜杠。
“https://myapp.com/link”重定向到“http://myapp.com/link/”。
我不知道为什么这个重定向没有保留协议,它可能是Flask或Heroku,虽然我怀疑它是Flask。无论它看起来像是一个错误。
希望这最终有助于其他人。