有没有用于检测强制门户存在的标准URL?

时间:2018-12-20 09:41:36

标签: network-programming captivenetwork captiveportal

我正在编写一个应用程序,其中我想检查用户是否已连接到访问点,但是由于存在强制门户,所以不允许网络访问。

以下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

2 个答案:

答案 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)以获取您要连接的真实主机。