VRA*_*ome 1 info.plist uiwebview nsurlconnection nsapptransportsecurity
在早期的日子里,每当我想那里获取数据并不需要添加NSAppTransportSecurity设置NSAllowsArbitraryLoads关键YES的info.plist,但如果你现在要运行你的应用程序通过网络,那么它必须加入.
为什么需要它?它有用吗?它的用途是什么?
有人可以帮忙吗?
在将您的应用程序连接到Web时,iOS9引入了App Transport Security作为附加安全功能.
来自Apple的文档:
App Transport Security是一项可以提高应用和Web服务之间连接安全性的功能.该功能包含符合安全连接最佳实践的默认连接要求.应用可以覆盖此默认行为并关闭传输安全性.
其中一个要求是所有连接都必须使用HTTPS.这就是为什么只使用HTTP的所有连接都将在iOS9上失败.
如果您使用的服务不是通过HTTPS提供的,您仍然可以通过覆盖App Transport Security来使用它.这就是NSAppTransportSecurity你Info.plist文件中的字典的用途.在那里,您可以定义要覆盖的App Transport Security要求.
例如NSAllowsArbitraryLoads禁用任何域的所有安全要求.您可以在NSExceptionDomains字典中定义例外,但如果不这样做,则允许所有域在没有App Transport Security的情况下连接到您的应用程序.
如果要连接到不使用HTTPS的单个域,则不应使用,NSAllowsArbitraryLoads因为这会禁用所有安全性所有域的.相反,您应该专门覆盖此一个域的HTTPS要求.
你可以这样做 Info.plist文件中:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourdomain.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
总结一下:App Transport Security是一件好事,因为它鼓励您使用比普通HTTP连接更安全的HTTPS连接.因为您不能总是使用HTTPS,所以它为您提供了允许不安全连接的机会.最好只在您需要的地方使用这些安全覆盖.
| 归档时间: |
|
| 查看次数: |
534 次 |
| 最近记录: |