iOS 9 ... WebView 是否不受阻止不安全 HTTP 主机的应用程序传输安全例外 (ATS) 规则的约束

ios

1个回答

写回答

Kiven dou

2025-07-09 01:40

+ 关注

IOS
IOS

IOS 9 WebView 是否受 ATS 规则约束的分析与案例代码

在 IOS 9 及更高版本中,引入了应用程序传输安全(ATS)规则,以增强应用程序的网络安全性。ATS 要求应用程序通过加密的 HTTPS 连接与服务器通信,并且默认情况下禁止与不安全的 HTTP 主机建立连接。然而,对于内置的 WebView 组件,即 UIWebView 和 WKWebView,它们是否受 ATS 规则的约束呢?

ATS 规则对于 WebView 的约束

根据苹果官方文档,WebView 组件默认情况下会受到 ATS 规则的约束。这意味着 WebView 在加载和显示网页时,会遵循 ATS 的要求,只能与使用 HTTPS 加密的主机建立连接。如果 WebView 尝试加载一个不安全的 HTTP 主机,ATS 将会阻止连接。

然而,开发者可以通过在应用程序的 Info.plist 文件中添加适当的 ATS 异常规则,来绕过 ATS 的限制,允许 WebView 加载不安全的 HTTP 内容。这样做的主要目的是为了向后兼容旧的网站和服务,因为某些网站可能仍然使用不安全的 HTTP 连接。

使用 ATS 异常规则绕过限制的案例代码

下面是一个示例的 Info.plist 文件,其中添加了 ATS 异常规则,允许 WebView 加载不安全的 HTTP 内容:

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

上述代码片段中,我们在 NSAppTransportSecurity 字典中添加了 NSAllowsArbitraryLoads 键,并将其值设置为 true。这样就告诉了 ATS,允许应用程序加载任意的不安全的 HTTP 内容。

需要注意的是,为了确保应用程序的网络安全性,开发者应该尽量避免在生产环境中使用 NSAllowsArbitraryLoads 异常规则。只有在特定情况下,确实需要加载不安全的 HTTP 内容时,才应该使用该规则。

在 IOS 9 及更高版本中,WebView 组件默认情况下受到 ATS 规则的约束,只能加载通过 HTTPS 加密的主机内容。然而,开发者可以通过在应用程序的 Info.plist 文件中添加适当的 ATS 异常规则,允许 WebView 加载不安全的 HTTP 内容。这样做的目的是为了向后兼容旧的网站和服务,但开发者应该谨慎使用这一规则,以确保应用程序的网络安全性。

以上是关于 IOS 9 WebView 是否受 ATS 规则约束的分析与案例代码。通过了解和正确使用 ATS 异常规则,开发者可以在必要的情况下允许 WebView 加载不安全的 HTTP 内容,同时保障应用程序的网络安全性。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号