<key>NSAllowsArbitraryLoads</key>
<true/>
NSAllowsArbitraryLoadsInWebContent
,在删除NSAllowsArbitraryLoadsInWebContent
后,海外可正常上传,<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
NSAllowsArbitraryLoadsInWebContent
影响海外用户上传?版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
App Transport Security (ATS) 是苹果在iOS 9及之后版本中引入的一项安全策略,旨在强制应用通过HTTPS进行网络通信,以提高数据传输的安全性。您提到的两个键值:
NSAllowsArbitraryLoads
:这个设置允许您的应用不遵循ATS的限制,即允许任意的HTTP和HTTPS请求。这会降低安全性,但可能解决了一些兼容性问题。
NSAllowsArbitraryLoadsInWebContent
:这个设置是针对应用内嵌的Web内容(如WKWebView或UIWebView)特别指定的。它允许这些Web内容不受ATS限制地加载资源,即使应用整体上可能启用了更严格的安全策略。这意味着对于Web视图中的内容,仍然要求使用安全连接,而不能随意加载非HTTPS资源。
海外用户上传图片时遇到的问题可能与以下因素有关:
区域网络差异:不同地区的网络环境、ISP政策或中间网络设备可能对HTTPS连接有特定的要求或限制。设置NSAllowsArbitraryLoadsInWebContent
可能导致某些地区或网络环境下,客户端尝试通过不安全的连接上传数据,从而被拒绝或报错。
HTTPS兼容性问题:OSS服务端默认支持HTTPS,并且推荐所有客户端通过HTTPS进行通信以保证数据安全。如果客户端配置不当,可能会导致HTTPS握手失败或者连接不被信任,尤其是在国际网络环境中,路径上的网络设备或代理服务器可能对SSL/TLS协议版本有更严格的要求。
删除NSAllowsArbitraryLoadsInWebContent
后,实质上是让应用内的Web内容也遵循了更严格的安全策略,这可能是海外用户能够成功上传的原因之一。因为这样确保了所有的网络请求都尽可能地通过安全连接进行,避免了因部分网络环境对安全策略的严格要求而导致的失败。
为了解决这个问题同时保持应用的安全性,建议采取以下措施:
仅对需要的域名放宽限制:使用NSExceptionDomains
来为特定的域名(如您的OSS存储桶域名)设置例外,允许其通过HTTP而非强制HTTPS,而不是全局开启NSAllowsArbitraryLoads
。
升级OSS SDK:确保使用的阿里云OSS SDK是最新的,以便获得最佳的HTTPS支持和兼容性。
检查OSS Bucket的HTTPS配置:确认OSS Bucket的SSL证书有效且支持全球访问,没有地域限制。
优化网络配置:考虑是否有CDN或其他网络加速服务可以改善跨境访问的稳定性和速度,尤其是对于海外用户。