【发布时间】:2022-07-08 18:15:31
【问题描述】:
我们发现 iOS Captive Network Assistant (CNA) 存在问题。当用户选择公共 SSID 访问互联网时,CNA 不会在某些 iPhone 上加载。此行为是随机的,并且并非特定于任何 iPhone 或 iOS 版本。我们在 Captive Portal 方面进行了检查;我们每次都返回 200 OK 和适当的着陆页内容。
观察: 我们观察到 iPhone 在打开 CNA 时通常会向 Captive Portal 发送 4 个请求。当它无法打开 CNA 时,我们只看到 1 个请求。详情如下。
CNA 发布:
- {name=Connection, value=close}, {name=User-Agent, value=CaptiveNetworkSupport-418 wispr}
- {name=Connection, value=close}, {name=User-Agent, value=CaptiveNetworkSupport-418 wispr}
- {name=Connection, value=close}, {name=User-Agent, value=CaptiveNetworkSupport-418 wispr}
- {name=user-agent, value=Mozilla/5.0 (iPhone; CPU iPhone OS 15_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148}
这里,所有带有 CaptiveNetworkSupport 的请求都在 HTTP 1.0 上。虽然数字 4 上显示的用户代理在 HTTP 2.0 上
CNA 未启动:
{name=Connection, value=close}, {name=User-Agent, value=CaptiveNetworkSupport-418 wispr}
我们仅在 CNA 未启动时看到 1 个请求。在这种情况下,用户代理是“CaptiveNetworkSupport”或“NetworkCTS”
有没有人在 iOS CNA 中遇到过这种问题?
注意:我们在 Android、Windows 和 MacOS 上没有此类问题。另请注意,当 Captive Portal 未启用 IPv6 时,有时无法加载 CNA 是一个已知问题。在我们的例子中,我们启用了 IPv6。
【问题讨论】:
标签: ios iphone captiveportal captivenetwork