昨天发现了一个ios下面的wifi认证系统的问题,ios在对目标wifi进行连接以后,会对apple自己的网站进行连接,以确认这个wifi是否需要认证,如果需要认证,ios会自动引导用户到认证页面进行相关的认证。其实这确实一个很赞的用户体验,但是对于目前我做的项目却让有些苦恼了,有些认证需要查看短信或者登录微信等相关切换进程操作的。但是如果这是你切换的话,ios就会断开对当前未完成认证的wifi的连接,这样子用户就无法利用我们提供的wifi上网完成相关的操作了,怎么破?
博主进行了一番中文google,发现有人也和我遇到了累死的问题,但是他是在求问,最后也没有合适的回答,今天博主在做用户连接记录方面工作时,发现一个奇怪的现象,用浏览器访问认证首页时,数据表中只有一条记录,但是在ios的wifi连接时一下子就产生了3条连接记录,这就让博主好奇起来了,ios到底做了什么工作,产生了这么多连接记录哪?
于是博主就对所有连接记录的REQUEST_URI进行记录查看IOS在wifi连接到底做了写什么?(如果您对网络抓包熟悉的话,也可以利用抓包工具来实现这些操作)通过记录这些REQUEST_URI我发现IOS在进行wifi连接时有这种现象。
IOS会对3个连接进行请求(我发现就3个),下面我给出他们的地址:
IOS会先对其中一个连接进行请求如果得到得到不是他想要的内容,就会把用户引导认证页面去,同一个链接会进行3次尝试,所以会看到我前面提到的可以看到有3条连接记录的现象!如果第一条链接请求成功,就会对下面的2条链接做同第一条链接同样操作。
我在发现了这个现象以后高兴了起来,感觉这个问题可以解决了,我只需要在wifidog的防火墙处做相关设置,开放这3个域名的白名单就不是解决问题了吗?