chat.facebook.com 在跨域策略文件响应的末尾不发送零字节

Posted

技术标签:

【中文标题】chat.facebook.com 在跨域策略文件响应的末尾不发送零字节【英文标题】:chat.facebook.com doesn't send zero byte at the end of the cross domain policy file response 【发布时间】:2013-08-27 14:59:46 【问题描述】:

我们正在实现一个 Facebook 应用程序,其中 AS3(XIFF 3.1.0 lib) 用于登录 Facebook 聊天,以便该应用程序可以向用户的朋友发送一些通知。在这一点上,我们遇到了有关 Adob​​e 所需的跨域策略文件的问题。问题是,当请求从 chat.facebook.com 获取跨域策略文件时(使用 Security.loadPolicyFile("xmlsocket://chat.facebook.com:5222") ) 从 69.171.241.10 以外的 IP 地址回答服务器响应中缺少终止策略文件的零字节(例如 173.252.107.17 :5222)。 根据 Wireshark,流程如下所示。

请求:

<policy-file-request/>
\000

回应:

<allow-access-from domain=\"*\" to-ports=\"5222\"/> 

根据 Adob​​e 的建议“服务器必须发送一个空字节来终止策略文件,然后可能会关闭连接;如果服务器不关闭连接,Flash Player 或 AIR 在收到终止的空字节后会这样做。”

假设:因此,flash 播放器认为没有收到任何策略文件并且不处理 xmpp 登录到 Facebook 聊天。

如果假设是正确的,那么它看起来像一个 Facebook 错误。

任何帮助将不胜感激, 谢谢。

【问题讨论】:

【参考方案1】:

这似乎是 Facebook 的错误。我已经通过对 Openfire XMPP 服务器(正常工作)执行 Wireshark 链接来验证这一点。已向 FB 报告错误:

https://developers.facebook.com/bugs/707541335928781

【讨论】:

我已经报告了一个错误,但忘记分享该主题的链接。 Facebook 支持要求我提供有关已完成问题的更多详细信息。因此,请您在此问题下添加您的 cmets,以便我们集中精力处理正在解决的报告。 developers.facebook.com/bugs/158215717712948谢谢【参考方案2】:

好消息!!!

Facebook 已修复该错误。

【讨论】:

以上是关于chat.facebook.com 在跨域策略文件响应的末尾不发送零字节的主要内容,如果未能解决你的问题,请参考以下文章

检测此页面是不是在跨域 iframe 内部的万无一失的方法

跨域之同源策略 Same-origin policy

XMPPError connected to chat.facebook.com (Permission denied) login to facebook chat with asmack

前端跨域知识总结

在 HTTPS 上部署 laravel 项目并在跨域请求期间使用正确的 href 加载内容

如何在跨域中获取 iframe contentWindow 高度