跳转至

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 版本相关的漏洞。

链接

标准

  • 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