使用"允许任意加载的应用传输安全阻止=是"

时间:2016-10-04 22:54:27

标签: ios amazon-ec2 ios9.3 app-transport-security

我尝试通过POST请求访问在Amazon EC2中的实例上运行的Python CGI脚本,但即使我已将Info.plist文件更改为允许任意加载,但它显示:

error

我在这里发出了POST请求:

let manager = AFHTTPRequestOperationManager()
        let URL = "http://ec2-XX-XX.compute-1.amazonaws.com/cgi-bin/hellopy2.py"
        let params = ["userToken": "XXXXXXXXXXX"]

        manager.POST(URL, parameters: params, success: { (operation, responseObject) -> Void in

这是我的info.plist文件:

Info.plist

2 个答案:

答案 0 :(得分:1)

确保您拥有正确的Info.plist文件

首先,确保您放置这些设置的Info.plist是您的项目正在使用的那个。您可以通过进入项目设置并搜索Info.plist来验证这一点。确保您设置这些值的Info.plist文件是您正在构建的构建目标的文件。

Example of Info.plist settings

如果您将项目构建为IPA,您也可以在事后验证。解压缩IPA,在解压缩的文件夹中,您应该看到Info.plist文件。验证您的ATS设置是否在该文件中,以确保正在运行的应用程序应使用这些例外。

获取设置正确/一致

一旦您验证了这一点,就应该清理您的设置。您可以使用全局标志来允许任何不安全的流量。这将适用于现在,但在2016年底之后,您无法向商店提交,无需向Apple提供理由并面临可能的拒绝。我建议不要在此时使用它,除非这是一个不能通过应用程序商店(例如企业应用程序)分发的应用程序。如果您确实选择使用此标志,请删除异常域,因为它们是不必要的(您基本上说所有域都是例外并允许http)。

如果你想要正确地做到这一点,只允许与amazonaws进行不安全的连接,你的设置应该是这样的:

Cleaned up App Transport Security Settings without extra entries

如果您有这些设置,并且您的Info.plist配置正确,您应该能够访问任何没有https的amazonaws.com子域。

答案 1 :(得分:-1)

“http://”不是域名的一部分。

从Info.plist文件中的域名中删除“http://”。

*您无需将全局“允许任意载入”键设置为“是”即可使用。