我正在编写一个应用程序,其中我想检查用户是否连接到访问点,但是不允许网络访问(由于存在圈养门户)。
以下URL是来自Microsoft的测试服务器,如果一切成功,则它将返回HTTP 200,内容为" Microsoft Connect Test"http://www.msftconnecttest.com/connecttest.txt
要将状态返回给用户,我想用另外一台测试服务器仔细检查,该服务器在HTML响应中返回一些内容。
从Google那里有一台测试服务器,AS" http://connectivitivitivitiveCheck.gstatic.com/generate_204",但这给出了空的HTML响应。
可从Mozilla和Apple获得几个服务器,但HTML响应中的所有"成功"。
为什么我不喜欢任何仅返回HTML主体"成功"的测试服务器,因为它不允许我测试内容篡改攻击的情况。
PL回复如果您知道其他标准服务器可以测试圈养门户...
〜Ashish
我知道这是一个非常古老的问题,但是我可能会为其他任何人降落的其他信息。
尽管Google Generate_204链接似乎没有返回,但实际上返回了204个状态。如果您的连接上有圈式门户网站,您将不会返回204。
我们在应用程序中使用它来检测圈养门户,并且效果很好。我们的API上有一个" Hello"端点,返回204。
知道您已连接到尚未经过身份验证的圈养门户,您可以使用任何HTTP(http over ssl/tls)URL,因为圈养门户将不会是能够完成正确的握手,因为它没有与已知的root CA或中间签名的有效X.509证书相关的秘密密钥。此外,这可以保护您免受内容篡改攻击。
一旦验证到圈式门户网站,您可以检查圈养门户是否使用与HTTP/1.0协议的任何HTTP URL一起使用透明的代理,因为大多数圈养门户都会查找" host:host:»header:»header:http/1.1)能够获得要连接到的真实主机。