在ios7中看起来像设备发送请求的URL,以检查连接到wifi后是否有互联网连接已经改变(更糟糕的是!).
在ios6及更早版本中,请求是:
GET /library/test/success.html HTTP/1.0
Host: www.apple.com
User-Agent: CaptiveNetworkSupport/1.0 wispr
Connection: close
Run Code Online (Sandbox Code Playgroud)
(来源)
但现在在ios7中,它可以访问"高达200"(根据cisco).
经过自己的测试,我可以随机确认这些请求到appleiphonecell.com,captive.apple.com,airport.us,ibook.info等.
所以我的问题是:有没有人有这些URL的完整列表(也许它只是Apple拥有的每个域名)?我们在wifi上运行一个强大的门户网站,但只是为了让用户知道他们需要在连接到wifi后连接到VPN.单击强制门户登录页面上的"取消"有时会显示"使用无互联网"选项,然后允许用户连接到VPN,但有时,单击"取消"不会提供此选项,只是断开连接wifi连接直接,这意味着用户无法连接到VPN.
在我们可以伪造对特定URL(library/test/success.html)的响应之前,然后将wifi连接起来.如果我们有一个可以访问的站点列表,我们可以再次执行此操作,否则我们可能必须使用我们的强制门户回到绘图板!(或等待ios7更新修复了"无网上使用"选项,每次都不会出现).如果可能的话,我们认为我们现在将基于用户代理进行调查.
Edit-wee更新,看起来UA至少保持一致,'CaptiveNetworkSupport'是共同点,所以我们暂时改为UA检查.
我们拥有的系统会产生一个URL参数,该URL参数+在参数名称中带有一个符号。系统生成URL,并将空格更改为+。
blah.com/index.php?f.Record+Type%7CemuRecordLevel=series
Run Code Online (Sandbox Code Playgroud)
我不知道如何$_GET使用PHP 设置此参数。
我试过了
$_GET["f_Record+Type|emuRecordLevel"])$_GET["f_Record%20Type|emuRecordLevel"])$_GET["f_Record Type|emuRecordLevel"])其他没有空格/加号的URL参数也可以正常工作。
有没有我的意思在这里提出,在一个类似的静脉更换的替换.用_?