在安全方面,将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可以拒绝该应用程序吗?
答案 0 :(得分:59)
您现在可以为本地地址执行此操作:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
Apple已将此密钥保存为ATS例外 - 它已表示不会拒绝使用它的应用程序。更多信息:https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html(在本地搜索“本地”)
答案 1 :(得分:2)
如果在应用程序的生产版本中不需要它,我会设置您的构建配置以使用两个不同的Info.plist文件。您基本上可以将plist的内部版本设置为“Internal-Info.plist”并在其中包含localhost。然后让生产“Info.plist”没有这个排除,让Apple没有理由现在或将来拒绝你的应用程序。
配置构建以自动为构建类型提供正确的Info.plist:
确保将“Info.plist”复制到名为“Internal-Info.plist”的新文件中,从“Info.plist”中删除排除项,您应该很好。
Apple现在可以拒绝你了(只有Apple才知道),但从2017年开始,Apple将要求有任何ATS排除的正当理由,所以除非你有合理的理由排除localhost ATS要求,否则最好是现在正确设置它。