The worst code I ever had to write was captive portal detection for the PlanGrid app. I discovered there is a whole host of sysadmins out there attempting to actively subvert the iOS capitve portal detection. They try to figure out the domains used and whitelist them so iOS will think it is connected to a good network, but they redirect everything else which horribly breaks SSL connections. The whole thing is an arms…
Apple could also makes the mini-browser supports those captive portal instead? Then none of this bypassing would be required.
Instead, there should be some non-routable, local-only special IPv4/IPv6 address that all captive portals are required to present.
No more DNS spoofing, no more page rewriting which breaks the web.