Facebook.com和iOS7强制门户检测

Cas*_*ers 4 facebook ios captivenetwork

我创建了一个连接到Facebook的路由器,以便在用户访问互联网之前获取一些信息.

首先,他们连接,获取强制网络门户页面,然后继续登录Facebook.自从升级到iOS7后,它无法加载facebook登录页面.在我的Mac上使用Captive Portal Assistant它没有任何问题,甚至在使用iOS版Safari的手机本身也没有问题.

这里出了什么问题?来自iOS7 Captive Portal Assistant的facebook过滤请求还是Apple在这里做了一些偷偷摸摸的东西?

似乎问题很普遍,只与facebook有关.

更新:我使用了测试版,他们几周前工作正常.现在有了相同的测试版,它就不再存在了.Facebook解释的另一点.

此致,Cas

Fa1*_*gel 5

自IOS 8以来Apple一直在解决这个问题.但由于所有iPhone 4用户都无法升级到IOS 8,这个问题仍然存在.

IOS 7设备检查以下域:

www.appleiphonecell.com
captive.apple.com
captive.apple.com
www.apple.com
www.itools.info
www.ibook.info
www.airport.us
www.thinkdifferent.us
Run Code Online (Sandbox Code Playgroud)

将这些域列入白名单会阻止登录掩码出现,因为IOS设备认为互联网正在按预期工作.这样你可以控制发生的事情,因为如果你使用普通的浏览器进行登录,IOS设备不会中断任何事情.

如果您不对域列入白名单,则会发生以下情况.我在带有几个IOS设备的路由器上进行了调试,它们大致相同:

  1. 如果您连接到wifi,IOS设备会尝试连接到上面列出的其中一个域.如果它可以联系其中一个域,则尝试另一个域.如果不能,则启动重定向,由路由器控制.有时,在它认为互联网正在运行之前,它会查询一个或多个域.
  2. 检查后,登录屏幕会重定向到您的路由器,然后重定向到您的强制网络门户的登录屏幕.此行为保持与IOS 6或之前相同.
  3. 现在,您开始向Facebook,Google或Twitter等第三方提供商登录oauth.现在差异出现了.如果在调试模式下运行,可以在路由器上进行检查.随着IOS设备进入其他域进行oauth登录(如www.facebook.com),iPhone认为,某些内容发生了变化,并开始查询上面列出的苹果域名之一.用户只能看到白色屏幕,而在后台,IOS设备会尝试重复联系其中一个域.对于用户来说,这似乎是一个错误,因为屏幕保持白色或需要很长时间才能显示第三方提供商的登录信息.有时它会停止加载,永远不会发生任何事

要避免此行为,您必须将上面列出的域列入白名单.对于IOS用户来说,这不是常见的行为,但是这样,您的浏览器可以控制登录会话,而IOS设备不会像登录屏幕那样中断它.

在以下网站上报告了一些浅层信息:

我找不到问题的详细描述,并通过使用一些路由器和IOS设备(如iPhone和iPad)调试所有部件,找到了上面的问题.