首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >应用程序传输安全(ATS)和本地已经安全的连接

应用程序传输安全(ATS)和本地已经安全的连接
EN

Stack Overflow用户
提问于 2017-06-13 20:12:08
回答 1查看 861关注 0票数 2

在阅读了Apple和众多Apple论坛文章之后,我仍然不清楚您是否需要任何ATS豁免才能对本地网络机器进行安全(TLS/HTTPS)调用(不合格域,例如:https://MyServer:9000)。这位医生的部分内容如下:

远程和本地连接应用程序传输安全( ATS )中的ATS可用性仅适用于对公共主机名的连接。该系统不为下列连接提供安非他明类兴奋剂保护:

  • 因特网协议(IP)地址
  • 不合格主机名
  • 使用.local顶级域的本地主机

若要连接到不合格主机名或.local域,必须将NSAllowsLocalNetworking键的值设置为“是”。

注意:虽然ATS不强制用于连接本地主机,但Apple强烈建议对任何本地连接使用传输层安全(TLS),同时使用自签名证书来验证本地IP地址。

那么,我是否需要添加NSAllowsLocalNetworking,即使是为了使已经符合ATS(前向保密,TLS 1.2等)的安全连接到不合格的主机名(私有本地服务器)?还是只需要NSAllowsLocalNetworking才能进行un安全本地呼叫?

EN

回答 1

Stack Overflow用户

发布于 2017-06-13 21:04:40

NSAllowsLocalNetworking密钥用于为本地网络呼叫请求ATS异常。如果您的本地服务器与ATS兼容,则不需要添加异常。这很简单,足以证实。只需在iOS 10设备上运行应用程序,Info.plist中就没有例外。如果连接在设备上成功,则您知道不存在导致问题的ATS违规行为。如果它不起作用,您很可能违反了ATS的一项要求(尽管您似乎已经验证了一些有关ATS遵从性的高级别要求)。

如果您确实失败了,您可以测试该URL是否符合ATS的要求,如下所示:在Mac上使用nscurl --ats-diagnostics <url>命令。您可以了解更多关于ATS的信息,以及如何在这个职位中使用/解释上面的nscurl命令的结果。

请注意,NSAllowsLocalNetworking异常是在iOS 10中添加的,因此将其包含在构建中并在iOS 9设备上运行将不会导致任何更改。如果您最终需要它,并且需要支持iOS 9,那么您需要在您的Info.plist中添加( NSAllowsLocalNetworkingNSAllowsArbitraryLoads )。在iOS 10上,它只对本地连接禁用ATS,但是在iOS9设备(不支持NSAllowsLocalNetworking条目)上,ATS将被全面禁用。

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

https://stackoverflow.com/questions/44530671

复制
相关文章

相似问题

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