为什么Facebook JS SDK试图连接到z-m-graph.Facebook.com



我的客户端应用程序使用直接从官方文档URL加载的用于JavaScript的Facebook SDK(https://connect.facebook.net/en_US/sdk.js)并且在初始化期间将CCD_ 1指定为CCD_。

init片段如下所示:

FB.init({
appId: '[redacted]',
cookie: true,
xfbml: false,
version: 'v2.9'
})

Graph API文档在所有示例HTTP请求片段中引用graph.facebook.com,而不引用z-m-graph.facebook.com;但是,我已经开始观察对https://z-m-graph.facebook.com/v2.9/请求。

端点似乎是在sdk.js脚本中预先配置的;这是我在sdk.js中发现的一个片段,当时我在Chrome开发工具的Sources选项卡下搜索"z-m-graph":

__d("UrlMapConfig", [], {
"www": "www.facebook.com",
"m": "m.facebook.com",
"connect": "connect.facebook.net",
"business": "business.facebook.com",
"api_https": "z-m-api.facebook.com",
"api_read_https": "z-m-api.facebook.com",
"graph_https": "z-m-graph.facebook.com",
"an_https": "an.facebook.com",
"fbcdn_http": "z-m-static.xx.fbcdn.net",
"fbcdn_https": "z-m-static.xx.fbcdn.net",
"cdn_http": "staticxx.facebook.com",
"cdn_https": "staticxx.facebook.com"
});

我无法确定地重现这个配置映射。有时api_端点使用v2.90,有时则不使用。


更新(2017-10-17T15.36+00:00)

re:为什么我关心SDK试图访问与预期不同的Graph API主机?

作为注册/登录体验的一部分,我使用SDK进行Graph API调用。由于此页面的安全性,我遵循OWASP指南并实施严格的内容安全策略(CSP)。

遵循最小权限的安全原则,CSP只允许连接到我希望应用程序需要的主机并从中获取资产。由于z-m-graph.facebook.com在任何地方都没有被记录或引用,并且graph.facebook.com在所有示例和指令中都是专门使用的,因此允许graph.facebook.com,而不允许z-m-graph.facebook.com


我很乐意帮助寻找答案/引出以下内容:

  1. 如何强制SDK始终使用graph.facebook.com
  2. 什么是z-m-graph.facebook.com
  3. 在哪里可以找到z-m-graph.facebook.com的文档
  4. 是否存在JS SDK可能尝试用于Graph API请求的其他主机?它们是什么

感谢您的光临!

据我所知,有

  1. graph.facebook.com
  2. z-m-graph.facebook.com和
  3. b-graph.facebook.com

Z.M应指零模式,该模式适用于网络提供商允许您免费使用Facebook且数据有上限且无可视媒体的国家(大多数情况下)。Facebook使该模式在发展中国家被广泛采用。注意:free.facebook.com不使用z-m-graph.facebookcom,而是纯HTML文档,因为它的freebasics程序只为非常有限的手机指定HTML而没有JavaScript

B应该是指基本的,我对此不太了解,但似乎与上面的有一些相似之处,或者用于慢速或有限的连接(不太确定)

我注意到,在Facebook应用程序上篡改Whitehat设置时,它们最终都在服务器上的同一个端点(95%的把握),帖子中有相同的身体参数,最重要的是,如果假设你的ISP支持它,如果你在免费模式之间切换,应用程序会切换到z-m(零模式),如果照片没有显示,或者网络速度减慢,有时会切换到b(基本模式)graph.facebook.com当你切换回数据模式时,z-m-graph.facebook.com没有文档,因为很少有开发人员需要它,因为它在尼日利亚非常依赖ISP。在前三大ISP中,只有两个支持facebook z-m图点,所以我不能在其他网络上使用z-m图,所以为它写文档没有意义,但它与其他网络有相似之处。希望这很好为您;)

最新更新