当前位置: 首页 > 知识库问答 >
问题:

如何在iOS9中加载启用应用传输安全的HTTP URL?[副本]

裴畅
2023-03-14

从今天上午的一个小游戏中可以看出,URL加载系统将决定使用https,即使您给它一个http URL,它也将决定使用https。有没有人知道如何禁用这种行为--即使只是针对特定的URL?

共有1个答案

隆兴修
2023-03-14

请参阅苹果的info.plist参考以获得完整的详细信息(谢谢@gnasher729)。

您可以在Info中为特定域添加例外。plist:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>testdomain.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <true/>
            <key>NSExceptionMinimumTLSVersion</key>
            <string>TLSv1.2</string>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <false/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <true/>
            <key>NSThirdPartyExceptionMinimumTLSVersion</key>
            <string>TLSv1.2</string>
            <key>NSRequiresCertificateTransparency</key>
            <false/>
        </dict>
    </dict>
</dict>

每个例外域的所有键都是可选的。演讲者没有详细说明任何一个键,但我认为它们都是相当明显的。

您还可以使用单个密钥忽略所有应用程序传输安全限制,如果您的应用程序有充分的理由这样做:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

如果你的app没有很好的理由,你可能会冒着被拒绝的风险:

将NSAllowsArbitraryLoads设置为true将允许其工作,但苹果非常清楚,他们打算拒绝那些没有特定原因使用该标志的应用程序。我能想到的使用NSAllowsArbitraryLoads的主要原因是用户创建的内容(链接共享、自定义web浏览器等)。在这种情况下,Apple仍然希望您包含对您控制的URL强制ATS的异常。

如果您确实需要访问不在TLS1.2上提供服务的特定URL,则需要为这些域编写特定的异常,而不是使用设置为Yes的NSAllowsArbitraryLoads。您可以在NSURLSesssion WWDC会话中找到更多信息。

在共享NSallowsArbilaryLoads解决方案时请小心。这不是苹果推荐的修补程序。

-kcharwood(谢谢@Marco-Tolman)

 类似资料:
  • 我想为我的网站将超文本传输协议请求转换为https。我已经获得了SSL证书,但可能有机会绕过我的应用程序启用的加密,并且在获得证书后,我的应用程序无法阻止通过不安全的连接访问

  • 问题内容: 我已经在Ubuntu上安装了Elasticsearch 7.1。我想用密码保护集群,所以我在文件中设置了:。现在,当我重新启动Elasticsearch时,我收到消息: 如果在[基本]许可证上启用了安全性,则必须启用传输SSL。请将[xpack.security.transport.ssl.enabled]设置为[true]或通过设置[xpack.security.enabled]禁用

  • 我尝试添加自定义过滤器并将其作为bean注入,我还尝试在WebSecurityConfigurerAdapter中禁用cors,我还尝试在configure HttpSecurity方法中添加过滤器。 这些我已经尝试过的一些链接: 1:Spring引导安全性的CORS问题。

  • 我目前正在开发Xcode7 beta6。我正在尝试向http://mysubdomain.herokuapp.com发送“删除”请求 App Transport Security已阻止明文HTTP(HTTP://)资源加载,因为它不安全。可以通过应用程序的info.plist文件配置临时异常。 调用API时出错:Error Domain=nSURLERRORDOMAIN CODE=-1022无法加

  • “http://xx3.xx.xx8.xx7/xxx/xxx/error:无法加载资源,因为应用程序传输安全策略要求使用安全连接。” 这是我添加到plist的代码

  • 我正在考虑使用ChaCha20-Poly1305来加密/解密密码(我需要加密/解密不能只哈希)。但是,要使用此算法,我们需要使用密钥。然而,这是一个问题,因为我正在他们的设备上加密/解密用户的密码,所以在我的数据库中,我只存储他们加密的密码。 问题是,如果用户从他们的手机上卸载我的应用程序或换成新手机,我需要相同的密钥才能再次解密用户的密码。 我的问题是:如何安全地传输和存储这个密钥? 另外,如果