使用Facebook REST API时,IE9错误SEC7111(“HTTPS安全性受到损害”)

7

我是一个WordPress插件的作者,该插件允许用户使用Facebook登录他们的博客;它使用旧的REST API引入登录按钮。通常,包含API的方法如下:

<script type="text/javascript" src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script>

然而,在Facebook引入安全连接(帐户 -> 帐户设置 -> 帐户安全性 -> 安全浏览)之后,Connect弹出窗口出现了问题。一位插件用户指出,可以通过将上述内容替换为以下内容来解决该问题:
<script type="text/javascript" src="https://ssl.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script>

除了新发布的IE9之外,在每个浏览器中,一切都正常工作,但IE9报告以下两个错误(并拒绝初始化Facebook API):
SEC7111:HTTPS安全性受到破坏https://www.facebook.com/extern/login_status.php?api_key=(MY_KEY)&extern=0&channel=(URL_to_my_xd_receiver)
SEC7111:HTTPS安全性受到破坏https://api.facebook.com/static/v0.4/client_restserver.php?r=1300118768 请注意,托管Facebook Connect按钮的页面不是https,并且前面的两个脚本包含不是我添加的 - 通过IE9的开发人员工具查看页面DOM源代码显示,这两个脚本包含在div“FB_HiddenContainer”中,显然由Facebook异步插入,因为它尝试初始化。
我在Google上找到的关于SEC7111的所有内容都涉及https页面尝试通过http包含脚本,但我的问题相反:页面是http,而脚本(由Facebook自动加载)是https。
非常感谢您的任何想法,我很困惑。如果您想自己玩,可以在我的网站上进行,http://www.justin-klein.com。请注意,“使用Facebook登录”按钮在所有浏览器上都能正确初始化,但在IE9上无法正常工作。

我真的帮不了你,而且我相信你已经考虑过了,但我还是要问一下...你考虑过升级插件吗? - ifaour
当然可以。然而这并不容易,而且目前我时间非常紧张,所以如果可能的话,我真的想避免为了适应IE而重写一切。 - J23
@Metal450 你的问题有任何更新吗?当我尝试将一个get变量发送到我的Canvas应用时,我也遇到了相同的错误(请参见http://facebook.stackoverflow.com/questions/7866581/ie9-error-sec7111-https-security-is-compromised-after-redirect-plus-only-secu)。 - Ian
1个回答

0

你可以使用 https FB 库来解决这个问题。更多信息请点击这里

从该网站的缓存版本中获取:

SEC7111: HTTPS security is compromised by http://static.ak.fbcdn.net/connect/xd_proxy.php?version=0.

This error can be fixed using the https version:

<script src="https://connect.facebook.net/en_US/all.js"></script>

嗨,Rafael,感谢你的提示 - 不幸的是,那是新的API,因此使用它需要重写每个调用为不同的格式(在Javascript和PHP两侧)。如我在上面的评论中提到的,这样做是一个相当复杂的任务,我真的希望有一个更简单的解决方案,而不是“重新制作整个插件”才能使其与IE9兼容... - J23
看起来旧的API没有其他解决办法,更新是唯一的解决方案。因此,答案被接受。 - J23
这个链接唯一建议的是使用https而不是http。我尝试了,似乎并没有解决问题。 - pal4life
这个链接已经失效了,这是一个很好的例子,说明为什么链接的相关部分应该复制/粘贴到答案中。 - LocalPCGuy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接