zoukankan      html  css  js  c++  java
  • ATS(App Transport Security)对HTTP协议屏蔽引起的问题

    一、问题描述

      在学习网络处理的过程,发现代码都没错,运行时会收到如下错误提示:

    App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

    二、问题分析

      应用程序采取了明文HTTP协议(http://)。WWDC 15,苹果引入了一项隐私保护功能ATS(App Transport Security),是 Apple 在推进网络通讯安全的一个重要方式。ATS屏蔽HTTP明文传输协议资源加载,因为http明文传输协议不安全,连接必须改成更安全的HTTPS协议。在 iOS 9 和 OSX 10.11中,默认情况下非HTTPS的网络访问是被禁止的。如果使用HTTP协议连接,会抛出一个错误。在Info.plist添加类型为Dictionary的NSAppTransportSecurity 并且将类型为 Boolean的NSAllowsArbitraryLoads 设置为 YES 即可来禁用 ATS,从而继续使用HTTP明文传输。

      在WWDC 2016开发者大会上,苹果宣布了一个最后期限:到2017年1月1日 App Store中的所有应用都必须启用 App Transport Security安全功能。App Transport Security(ATS)是苹果在iOS 9中引入的一项隐私保护功能,屏蔽明文HTTP资源加载,连接必须经过更安全的HTTPS。苹果目前允许开发者暂时关闭ATS,可以继续使用HTTP连接,但到年底所有官方商店的应用都必须强制性使用ATS。

      WWDC 16 ,Apple将在iOS 10和macOS 10.12收紧对HTTP的访问限制。从2017年1月1日起,所有新提交到App Store中的App都必须启用ATS 安全功能,默认是不允许使用 NSAllowsArbitraryLoads 来绕过 ATS 限制,保证 Spp 的网络请求都是 HTTPS 加密的,否则可能会在应用审核时遇到麻烦。

    三、问题解决

    方法一:直接打开Info.plist,插入以下代码

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

    具体位置如下

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
            ...
        <key>NSAppTransportSecurity</key>
        <dict>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
        </dict>
            ...
    </dict>
    </plist>

    方法二:Xcode打开Info.plist ,添加类型为Dictionary的NSAppTransportSecurity 并且将类型为 Boolean的NSAllowsArbitraryLoads 设置为 YES 即可来禁用 ATS,从而继续使用HTTP明文传输。

    info.plist

    学习,以记之。如有错漏,欢迎指正

    作者:冯子武
    出处:http://www.cnblogs.com/Zev_Fung/
    本文版权归作者和博客园所有,欢迎转载,转载请标明出处。
    如果博文对您有所收获,请点击下方的 [推荐],谢谢

  • 相关阅读:
    点、面状地物对象的时态GIS
    关于dijit.form.ComboBox 赋值,更新值
    远程桌面超出最大连接数时强制登录
    SQL和excel数据互导入
    google map api 二三维联动 参考
    PowerDesign设置列名与表名的大小写规则
    Nunit在VS2010加载不了程序集的解决办法
    缩写
    Python 自用脚本
    UVM项目随笔
  • 原文地址:https://www.cnblogs.com/Zev_Fung/p/5591241.html
Copyright © 2011-2022 走看看