1

看起来最近的 Chrome 更新通过收紧混合内容 (https/http) 安全策略打破了这一点,我读到 Firefox 也计划这样做。

这是问题:

假设我将应用程序的 Secure Canvas URL 设置为https://themediadudes.com/httpstest/

该页面仅包含指向 Google 的链接:

<a href="http://www.google.com">Google</a>

当我在 Facebook 上查看应用程序并单击链接时,没有任何反应。控制台中出现错误:

[阻止] https://apps.facebook.com/myappname/的页面运行来自http://www.google.com/的不安全内容。

我了解不允许在 https 页面上使用不安全的脚本/样式表等,但不应阻止指向其他网站的简单链接,对吧?我假设 Facebook 正在运行一些脚本,这些脚本在将用户发送到那里之前对页面做一些事情?这会导致错误。

如果我将链接的目标设置为 _top 或 _blank 它可以工作。

理想情况下,我希望能够使用 javascript window.location 将用户发送到这个不安全的 URL 或 header('Location: blah'); 在 PHP 中。但这些都不起作用。如果即使是指向不安全 URL 的简单链接也不起作用,这似乎是一个更大的问题。

我认为这可能是由任何使“流体”画布宽度和画布高度设置起作用的原因引起的。但是我尝试将宽度和高度都设置为固定,但问题仍然存在。

有没有人有解决方案或解决方法,或者任何人至少可以对此有所了解?谢谢

4

1 回答 1

1

我一直在努力解决类似的问题,答案似乎是根本不可能从您的页面选项卡应用程序中引用任何非 https 资源。当然,如果您只需要一个谷歌链接,那么这很容易解决(因为谷歌当然有一个 https 版本)但是引用外部非 https 网站总是会在 chrome 中出现这个警告/块

此外,我应该补充一点,我注意到“页面选项卡 URL”部分需要指向特定页面的 url,而“画布 URL”需要链接到目录。这似乎没有记录,并且还会在 chrome 中提供不安全的内容消息并阻止页面选项卡应用程序加载

于 2013-11-17T21:12:04.403 回答