我正在编写一个应用程序,其中我想检查用户是否已连接到访问点,但是由于存在强制门户,所以不允许网络访问。
以下URL是Microsoft的测试服务器,如果一切成功,则返回HTTP 200,内容为“ Microsoft Connect Test” http://www.msftconnecttest.com/connecttest.txt
要将状态返回给用户,我想再检查一台测试服务器,该服务器在HTML响应中返回一些内容。
有一个来自Google的测试服务器,名称为“ http://connectivitycheck.gstatic.com/generate_204”,但这会给出空的HTML响应。
可以从Mozilla和Apple获得服务器对,但是所有HTML响应都返回“ SUCCESS”。
为什么我不喜欢任何在HTML正文中仅返回“ SUCCESS”的测试服务器,是因为它不允许我测试内容篡改攻击的情况。
pl答复是否知道其他任何标准服务器来测试强制门户...
〜Ashish
答案 0 :(得分:1)
我知道这是一个非常老的问题,但是我可能对登陆这里的其他人有一些额外的信息。
尽管Google generate_204链接似乎未返回任何内容,但实际上返回了204状态。如果您的连接上有强制俘虏门户,您将不会获得204回报。
我们在应用程序中使用它来检测强制门户,并且效果很好。我们的API上有一个“ Hello”端点,该端点返回204。
答案 1 :(得分:0)
要知道您已连接到尚未通过身份验证的强制门户,则可以使用任何https(基于SSL / TLS的HTTP)URL,因为强制门户将无法完成正确的握手,因为没有与已由已知根CA或中间根CA签名的有效X.509证书关联的密钥。而且,这可以保护您免受内容篡改攻击。
一旦通过身份验证门户,您可以检查是否通过HTTP / 1.0协议使用任何http URL来确保该门户使用透明代理,因为大多数门户都在寻找«Host:»标头(出现在HTTP / 1.1)以获取您要连接的真实主机。