将 localhost 添加到 App Transport Security (ATS) NSExceptionDomains 是否安全?
Is it safe to add localhost to App Transport Security (ATS) NSExceptionDomains?
将localhost
添加到 ATS NSExceptionDomains
以供开发使用,在安全方面是否安全?在每次提交之前从 Info.plist
文件中删除这些行不是很方便(而且很容易忘记)。
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
另外,Apple是否可以因此拒绝申请?
如果应用程序的生产版本不需要它,我会将您的构建配置设置为使用两个不同的 Info.plist 文件。您基本上可以将 plist 的内部版本设置为 "Internal-Info.plist" 并在其中排除本地主机。然后制作没有排除的产品 "Info.plist",让 Apple 没有理由现在或将来可能拒绝您的应用程序。
要将您的构建配置为自动拉入适合构建类型的 Info.plist:
- Select 左侧导航器中的项目
- Select 您要更改的目标(在 "TARGETS" 下)
- 点击"Build Settings"
- 搜索 "Info.plist"
- 在打包部分,您应该会看到一个名为 "Info.plist File" 的设置。 Select 行,然后单击小三角形将其展开,以便您可以针对不同的构建配置进行不同的设置。将 "Debug" 的值更改为 "Internal-Info.plist"
确保将 "Info.plist" 复制到一个名为 "Internal-Info.plist" 的新文件中,从 "Info.plist" 中删除排除项,然后就可以了。
Apple 现在可能会为此拒绝您(只有 Apple 知道),但从 2017 年开始,Apple 将要求任何 ATS 排除的正当理由,因此除非您有排除本地主机 ATS 要求的正当理由,否则最好现在就正确设置它。
您现在可以对本地地址执行此操作:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
Apple 已将此密钥视为 ATS 例外 — 它表示不会拒绝使用它的应用程序。更多信息:https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html(在页面中搜索 "local")
将localhost
添加到 ATS NSExceptionDomains
以供开发使用,在安全方面是否安全?在每次提交之前从 Info.plist
文件中删除这些行不是很方便(而且很容易忘记)。
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
另外,Apple是否可以因此拒绝申请?
如果应用程序的生产版本不需要它,我会将您的构建配置设置为使用两个不同的 Info.plist 文件。您基本上可以将 plist 的内部版本设置为 "Internal-Info.plist" 并在其中排除本地主机。然后制作没有排除的产品 "Info.plist",让 Apple 没有理由现在或将来可能拒绝您的应用程序。
要将您的构建配置为自动拉入适合构建类型的 Info.plist:
- Select 左侧导航器中的项目
- Select 您要更改的目标(在 "TARGETS" 下)
- 点击"Build Settings"
- 搜索 "Info.plist"
- 在打包部分,您应该会看到一个名为 "Info.plist File" 的设置。 Select 行,然后单击小三角形将其展开,以便您可以针对不同的构建配置进行不同的设置。将 "Debug" 的值更改为 "Internal-Info.plist"
确保将 "Info.plist" 复制到一个名为 "Internal-Info.plist" 的新文件中,从 "Info.plist" 中删除排除项,然后就可以了。
Apple 现在可能会为此拒绝您(只有 Apple 知道),但从 2017 年开始,Apple 将要求任何 ATS 排除的正当理由,因此除非您有排除本地主机 ATS 要求的正当理由,否则最好现在就正确设置它。
您现在可以对本地地址执行此操作:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
Apple 已将此密钥视为 ATS 例外 — 它表示不会拒绝使用它的应用程序。更多信息:https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html(在页面中搜索 "local")