Index
不安全的 App Transport Security (ATS) 设置
描述
App Transport Security (ATS) 在应用程序与其后端之间的安全连接中强制执行最佳实践。ATS 可以防止意外泄露,提供安全的默认行为,并且易于采用;它在 iOS 9 和 OS X v10.11 中也默认开启。因此,无论您是创建新应用还是更新现有应用,都应尽快采用 ATS。
NSAllowsArbitraryLoads: 如果设置为 YES,则禁用所有网络连接的所有 ATS 限制,除非您在可选的 NSExceptionDomains 字典中单独配置的域。默认值为 NO。NSAllowsArbitraryLoadsForMedia: 如果设置为 YES,则禁用您的应用使用 AV Foundation 框架加载的媒体的所有 ATS 限制。仅将此键用于加载已加密的媒体(例如受 FairPlay 或安全 HLS 保护的文件),这些媒体不包含个性化信息。默认值为 NO。NSAllowsArbitraryLoadsInWebContent: 如果设置为 YES,则禁用对从 web 视图(web views)发出的请求的所有 ATS 限制。这使您的应用程序可以使用能够显示任意内容的嵌入式浏览器,而无需禁用应用程序其余部分的 ATS。默认值为 NO。NSExceptionAllowsInsecureHTTPLoads: 如果设置为 YES,则允许对指定域进行不安全的 HTTP 加载,但不更改 Transport Layer Security (TLS) 要求,并且不影响对指定域的 HTTPS 加载。默认值为 NO。NSExceptionMinimumTLSVersion: 为指定域的网络连接指定最低 TLS 版本,允许使用较旧、安全性较低的 Transport Layer Security 版本进行连接。
建议
以下是建议的 ATS 设置:
NSAllowsArbitraryLoads: 设置为NO以强制执行 ATS 限制,通过限制任意网络连接来增强整体网络安全性。NSAllowsArbitraryLoadsForMedia: 除非加载特定加密媒体需要,否则设置为NO,以确保媒体内容仅允许安全连接。NSAllowsArbitraryLoadsInWebContent: 除非特定功能需要,否则设置为NO,因为启用它可能会损害 web 视图中的 ATS 保护。NSExceptionAllowsInsecureHTTPLoads: 设置为NO以强制执行 HTTPS 连接并维持安全的通信标准,从而最大限度地降低数据被拦截的风险。NSExceptionMinimumTLSVersion: 设置为您应用程序和服务器基础架构支持的最新 TLS 版本,确保最佳的安全标准并防御与旧 TLS 版本相关的漏洞。
链接
- Preventing Insecure Network Connections
- Announcement of App Transport Security in iOS 9
- Cocoa Keys (Apple Developer)
标准
- OWASP_MASVS_L1:
- MSTG_NETWORK_2
- OWASP_MASVS_L2:
- MSTG_NETWORK_2
- GDPR:
- ART_5
- ART_32
- PCI_STANDARDS:
- REQ_2_2
- REQ_3_6
- REQ_3_7
- REQ_4_2
- REQ_6_2
- OWASP_MASVS_v2_1:
- MASVS_NETWORK_1
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_6_7
- CC_7_1
- CC_7_2
- CC_7_4
- CC_7_5
- CNIL_FOR_EDITORS:
- EDITORS_4_1_1
- CNIL_FOR_DEVELOPERS:
- DEVELOPERS_4_1_1
- DEVELOPERS_4_1_4
- HIPAA_CONTROLS:
- SECURITY252
- SECURITY212
- SECURITY213