到目前为止,我们只在应用程序的ATS设置中设置了NSAllowsLocalNetworking
不过,现在正在我们的聊天功能中引入链接预览。用户发布的链接用于创建包含链接网页的图像和favicon的预览。
问题是,用户发布的一些链接具有明文(HTTP)格式的favicon/images。
这是使用NSAllowsArbitraryLoads的有效理由吗?
我不能百分之百确定ATS的执行现状以及用户生成的链接是否是一个可接受的例外。
(我们正在使用翠鸟库在UIImageView中显示这些图像,因此使用AVFoundation不可能实现NSAllowsArbitraryLoadsForMedia。)

最佳答案

虽然我无法确定苹果会考虑什么样的合理理由(因为他们还没有开始实施,所以我们没有信息可以透露),但在应用程序中使用用户驱动的内容似乎是那些需要更广泛的NSAllowsArbitraryLoads例外的场景之一。
我的建议是,为了向苹果展示,你已经尽了一切努力来确保你所能的任何通信安全,这将是与最常见的技术相反的做法。通常情况下,应用程序会在添加对某些域禁用ATS的异常域时使ATS保持启用状态(通过将默认值NSAllowsArbitraryLoads保留为否)。如果我是你,我会反其道而行之-将NSAllowsArbitraryLoads设置为YES,因为你不知道哪些url可能需要ATS异常,然后为你在应用程序中控制的域添加异常域(假设有一些主服务器你从中获取了大部分应用程序内容)。这样可以确保与服务器的通信使用ATS标准得到保护,而已知服务器之外的所有服务器都将免除ATS要求。因此,请关闭ATS,但对您控制的域重新打开它。
在一些常见的ATS配置上,您可以看到如何以这种方式设置(“示例C:ATS已禁用,但有一些例外”):
great article
对我来说,这对苹果来说是一个好兆头,表明你正在尽可能遵守ATS的精神。

关于ios - 显示网络图像是使用NSAllowsArbitraryLoads的有效借口吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45490076/

10-13 07:41