Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将本地主机添加到应用程序传输安全(ATS)NSExceptionDomains安全吗?_Ios_Iphone_Https_App Transport Security - Fatal编程技术网

Ios 将本地主机添加到应用程序传输安全(ATS)NSExceptionDomains安全吗?

Ios 将本地主机添加到应用程序传输安全(ATS)NSExceptionDomains安全吗?,ios,iphone,https,app-transport-security,Ios,Iphone,Https,App Transport Security,在安全方面,将localhost添加到ATSNSExceptionDomains以供开发使用是否安全?在每次提交之前从Info.plist文件中删除这些行不是很方便(而且很容易忘记) <dict> <key>NSExceptionDomains</key> <dict> <key>localhost</key> <dict> <key&

在安全方面,将
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>

NSExceptionDomains
本地服务器
n包括多个域
NSTemporary ExceptionalLowsInSecureHttpLoads

此外,苹果是否会因此拒绝该应用程序?

如果该应用程序的生产版本中不需要它,我会将您的构建配置设置为使用两个不同的Info.plist文件。基本上,您可以将plist的内部版本设置为“internal Info.plist”,并在其中包含localhost排除。然后制作“Info.plist”,它没有这个排除,苹果没有理由现在或将来拒绝你的应用程序

要将生成配置为自动拉入生成类型的正确Info.plist,请执行以下操作:

  • 从左侧的导航器中选择您的项目
  • 选择要更改的目标(在“目标”下)
  • 单击“生成设置”
  • 搜索“Info.plist”
  • 在打包部分,您应该看到一个名为“Info.plist File”的设置。选择该行,然后单击小三角形将其展开,以便可以对不同的生成配置进行不同的设置。将“Debug”的值更改为“Internal Info.plist”
  • 确保您将“Info.plist”复制到一个名为“Internal Info.plist”的新文件中,从“Info.plist”中删除排除项,您应该会很好


    苹果可能会因此拒绝您(只有苹果知道),但从2017年开始,苹果将要求您提供排除任何ATS要求的有效理由,因此除非您有排除localhost ATS要求的有效理由,否则最好现在就正确设置

    您现在可以对本地地址执行此操作:

    <key>NSAppTransportSecurity</key>    
    <dict>
        <key>NSAllowsLocalNetworking</key>
        <true/>
    </dict>
    
    NSAppTransportSecurity
    NSAllowsLocalNetworking
    

    苹果公司将此密钥视为ATS例外,并表示不会拒绝使用此密钥的应用程序。更多信息:(在页面中搜索“本地”)

    这将使我保持两个plist。。。很容易忘记添加某些内容。您可以将脚本添加到生成设置中,以仅删除版本生成的localhost异常。我们很少更改Info.plist,因此维护两个副本非常简单。但是,只需编写一点脚本,您就可以让它成为自动构建过程的一部分,并且仍然能够维护单个Info.plist。此外,您是否或多或少会忘记在每次提交到应用商店时从plist中删除条目?这就是我想要的!它从iOS10开始提供,谢谢!不适合我:(我可能不知道在哪里写它。@PareshThakor可能是这样的:NSAppTransportSecurity NSAllowsLocalNetworking
    苹果已经祝福了…
    :)