Facebook graph api 为什么Facebook';s JSONP回调以“开始”/**/&引用;

Facebook graph api 为什么Facebook';s JSONP回调以“开始”/**/&引用;,facebook-graph-api,jsonp,Facebook Graph Api,Jsonp,当我使用Facebook的Open Graph API时,我注意到Facebook生成的JSONP响应似乎在每个响应的开头都有一个无关的“/**/”,如下所示: URL: https://graph.facebook.com/SOME_ID?method=get&pretty=0&sdk=joey&callback=FB.__globalCallbacks.f1c77f051c Response: /**/ FB.__globalCallbacks.f887adeec

当我使用Facebook的Open Graph API时,我注意到Facebook生成的JSONP响应似乎在每个响应的开头都有一个无关的“/**/”,如下所示:

URL: 
https://graph.facebook.com/SOME_ID?method=get&pretty=0&sdk=joey&callback=FB.__globalCallbacks.f1c77f051c

Response:
/**/ FB.__globalCallbacks.f887adeec(...);

这是为什么?

当然是为了防止XSSI。。。所以你不能执行它


http://maxime.sh/2013/02/javascript-quest-ce-que-le-xssi-et-comment-leviter/&usg=ALkJrhhjfdwBrK7kxNipOowAYacIcJm89g“>这是一篇关于这一点的法国博客帖子(谷歌翻译)

Facebook似乎在他们的JSON上使用了一个清理器,而它只是在开始时留下了剩余的评论持有者。很可能为了调试目的而在那里留下评论,但在生产中实际的评论会被清理掉。

我们添加此功能是为了防止第三方网站绕过re内容类型的攻击通过做以下事情来响应:

谷歌也做了类似的事情,除了他们使用//…+\n(例如)

来防止XSSI 查看facebook的图表以获取更多帮助

也许可以给出更具体的代码片段,而不仅仅是链接?这是否意味着flash会接受一个类似SWF的文件,并在最后添加额外的内容?(API响应)嗯,我已经测试过了,看来flash确实接受未压缩SWF文件末尾的额外字节。很明显,对于该漏洞,又名Rosetta flash。该漏洞似乎是精心编制的flash字节在执行时认为它们位于目标站点(facebook.com)上,因此可以访问相同来源的数据(我猜是cookies,本地存储),但可以将该信息发送给第三方。