You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NSAllowsArbitraryLoads设为Yes时,NSExceptionDomains的作用是什么?

ATS配置疑问解答

先贴出你的info.plist ATS配置代码:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>https://test.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.2</string>
            <key>NSTemporaryExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>
</dict>

1. NSAllowsArbitraryLoads设为Yes时,配置NSExceptionDomains的意义

当NSAllowsArbitraryLoads设为YES时,全局ATS规则是完全放开的——所有HTTP请求、不符合ATS要求的HTTPS请求(比如低版本TLS、不支持前向保密)都能正常发起。

这时配置NSExceptionDomains的核心作用是给特定域名定制更精准的ATS规则,而非继续放宽。比如你配置里的test.com:

  • 全局已经允许所有请求,但你给这个域名单独指定了最低TLS版本为1.2,同时关闭前向保密要求;
  • 这种配置是给特定域名设置专属规则,既可以让它在全局宽松的基础上满足某些必须的安全要求,也可以针对该域名的服务器情况调整规则(比如服务器不支持前向保密,就单独关闭这个要求)。

简单说:全局是“无限制”,例外域是给特定域名“加限制/定制规则”,而非重复放宽。

2. 配置例外域后,非ATS合规且不在例外域的URL是否允许?

允许。NSAllowsArbitraryLoads=YES的全局规则优先级高于例外域,例外域仅作用于指定域名,其他域名依然遵循全局的完全放开规则——不管是否符合ATS要求,都能正常发起请求。

3. 移除NSExceptionDomains后,是否所有不安全URL都会被允许?

是的。移除后,整个ATS配置只剩NSAllowsArbitraryLoads=YES,所有HTTP请求、不符合ATS标准的HTTPS请求(比如TLS版本低于1.2、不支持前向保密等)都会被系统允许,没有任何额外限制。

4. 保留例外域的话,规则是不是仅适用于指定域?

没错。例外域里的所有规则(包括开启NSIncludesSubdomains后的子域名)只对指定的域名生效,其他域名完全不受例外域规则影响,依然遵循NSAllowsArbitraryLoads=YES的全局规则。

比如你配置里的规则仅作用于test.com及其所有子域名,其他域名比如example.com还是完全放开,不需要符合任何ATS要求。

内容的提问来源于stack exchange,提问作者CuriousMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:57:28