首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么要在“key”中加上“`NSAppTransportSecurity`”,并添加“`NSAllowsArbitraryLoads`”键?

为什么要在“key”中加上“`NSAppTransportSecurity`”,并添加“`NSAllowsArbitraryLoads`”键?
EN

Stack Overflow用户
提问于 2015-10-20 10:52:57
回答 1查看 736关注 0票数 1

在前几天,每当我想检索数据时,不需要添加NSAppTransportSecurity,将NSAllowsArbitraryLoads键设置为info.plist中的YES,但现在如果要通过网络运行应用程序,则必须添加它。

为何要这样做?它有多有用?它的用途是什么?

有人能帮忙吗拜托?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-20 16:51:37

应用程序传输安全是在将应用程序连接到web时引入iOS9作为附加安全功能的。

来自苹果公司的文件:

App传输安全是一种提高应用程序和web服务之间连接安全性的功能。该特性由符合安全连接最佳实践的默认连接要求组成。应用程序可以覆盖此默认行为并关闭传输安全性。

其中一个要求是所有连接都必须使用HTTPS。这就是为什么所有只使用HTTP的连接都会在iOS9上失败。

如果您使用的是通过HTTPS不可用的服务,则仍然可以通过覆盖来使用它。这就是您的NSAppTransportSecurity文件中的Info.plist字典的用途。在这里,您可以定义要覆盖的应用程序传输安全性要求。

例如,NSAllowsArbitraryLoads禁用对任何域的所有安全要求。您可以在NSExceptionDomains字典中定义异常,但是如果不这样做,所有域都可以在没有的情况下连接到应用程序。

当您想要连接到不使用HTTPS的单个域时,您不应该使用NSAllowsArbitraryLoads,因为这将禁用all all域的安全性。相反,您应该只针对这一个域专门重写HTTPS要求。

您可以在Info.plist文件中这样做:

代码语言:javascript
复制
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

总结一下: App传输安全性是一件好事,因为它鼓励您使用比普通HTTP连接更安全的HTTPS连接。因为您不能总是使用HTTPS,所以它为您提供了允许不安全连接的机会。很好的做法是,只在需要它们的地方使用这些安全性。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33234717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档