【发布时间】:2018-01-02 20:47:08
【问题描述】:
我们有一个使用短信认证方式的热点产品。用户选择我们的 WiFi 热点网络并被重定向到我们的登录页面。
在 iOS 和 Adroid 上,一个 Captive Portal 弹出窗口被激活,显示我们的登录页面。我们要求用户填写表格并提交他们的电话号码。当他们点击“提交”时,我们会向他们发送一条带有验证码的短信。
登录窗口(托管在我们的服务器上)变为一个新页面,该页面显示一个输入验证码的字段。到目前为止一切顺利...如果用户在强制窗口顶部的屏幕上看到 SMS 的“通知弹出窗口”,他可以看到代码并将其输入提供的字段并进行身份验证。
但是如果他没有设置这样的短信通知,他必须去他的短信应用程序并查找代码。现在,唯一的方法是关闭 Captive 弹出窗口,但随后他与我们的热点断开连接。如果他重新连接,他需要重新填写表格并收到一条新短信,但他面临同样的问题。
现在,一直以来用户都没有经过身份验证,因此在 iOS 中,强制窗口在右上角显示“取消”。我在其他热点上看到过同样的方法,但是从第一个 Captive 窗口中,右上角显示的控件是“完成”。据我所知,不同之处在于用户通过身份验证时显示“完成”控件,而用户尚未通过身份验证时显示“取消”。
有没有办法“欺骗”CNA 以“认为”用户可以访问互联网并显示“完成”,这样当 Captive 窗口关闭时,设备会保持连接到我们的热点?
我们正在考虑一些“两步”身份验证,例如临时身份验证(以“完成”),然后在输入验证码后进行“真实”身份验证。
另一种方法可能是使用某种脚本(例如 iOS 上的“成功”技巧)来欺骗 CNA,使其认为可以访问互联网。但是在哪里以及如何应用“成功技巧”?在路由器的某些 HTML 页面中?还是在我们的登录页面代码中的某个地方?
【问题讨论】:
标签: ios wifi mikrotik hotspot captivenetwork