我们有一个使用SMS身份验证方法的热点产品。用户选择我们的WiFi热点网络,并重定向到我们的登录页面。
在iOS和Adroid上,激活了强制网络门户弹出窗口,显示我们的登录页面。我们要求用户填写表格并提交电话号码。当他们点击“提交”时,我们会向他们发送带有验证码的短信。
登录窗口(托管在我们的服务器上)更改为新页面,该页面显示输入验证码的字段。到目前为止一切都很好......如果用户在俘虏窗口顶部的屏幕上看到短信的“通知弹出窗口”,他可以看到代码并在提供的字段中输入并进行身份验证。
但如果他没有像这样设置短信通知,他必须转到他的短信应用程序并查找代码。现在,唯一的方法是关闭Captive弹出窗口,然后他与我们的热点断开连接。如果他重新连接,他需要再次填写表格并获得新的短信,但他面临同样的问题。
现在,所有这些用户都没有经过身份验证,因此在iOS中,强制窗口会在右上角显示“取消”。我在其他热点上看到了相同的方法,但是从第一个Captive窗口,右上角显示的控件是“Done”。据我所知,不同之处在于,当用户通过身份验证时会显示“完成”控件,而在尚未通过身份验证时会显示“取消”。
有没有办法“欺骗”CNA“认为”用户可以访问互联网并显示“完成”所以当强制关闭窗口关闭时,设备会保持连接到我们的热点? < / p>
我们正在考虑一些“两步”身份验证,例如临时(获取“完成”),然后输入验证码后的“真实”身份验证。
另一种方法可能是使用某种脚本(比如iOS上的“成功”技巧)来欺骗CNA认为有互联网访问。但是在哪里以及如何应用“成功技巧”?在路由器的一些HTML页面中?或者在我们的登录页面代码的某处?
答案 0 :(得分:0)
不同的操作系统版本和不同的平台以不同的方式检查互联网访问。例如,iOS会查找其中一个:
http://captive.apple.com/hotspot-detect.html
等。
Android使用(其中包括):
http://clients3.google.com/generate_204
最佳解决方案是让您的强制门户网站允许通过防火墙访问这些门户网站。如果您通过ipfw或iptables使用MAC过滤,这很容易。如果您正在进行DNS欺骗,那就更难了 - 对于那些情况,我只是在您的强制门户网站包中包含“成功”页面。