NSAllowsArbitraryLoads 不适用于 ip 地址
NSAllowsArbitraryLoads not working for ip address
我正在尝试让我的应用程序通过 Apple Transport Security 连接到地址为 152.111.198.244 的 http 服务器。我正在尝试的任何东西都不起作用。
将 NSAllowsArbitraryLoads 键添加到我项目的 info.plist 文件中仍然不允许我的应用程序连接到这个特定的 IP 地址 152.111.198.244
我已经完成了关于 Apple Transport Security 的 technote。我安装了 OSX 10.11 来尝试使用
找到哪些设置可能适用于 URL
nscurl --ats-diagnostics http://152.111.198.244
和
nscurl --ats-diagnostics http://152.111.198.244/publications/
在终端中。 nscurl 尝试的所有设置都会失败。我看过类似的问题 and and have not found the solution. I also looked here,那里提出的 NSExceptionMinimumTLSVersion 键不起作用。
我开始认为可能某处存在错误,或者我遗漏了什么。 IP 地址是 Apple Transport Security 的问题吗?为什么?有没有办法让一个 IP 地址通过 ATS 工作?
更新:我添加了给我带来麻烦的特定 IP 地址。希望有人能够复制我在说什么。
更新:我将此记录为雷达中的错误,并收到一条消息说它是重复的。同时,这个问题中提到的IP地址现在已经有了域名http://3d.media24.com/但是很遗憾没有解决问题
更新:我将答案标记为正确。苹果似乎用 XCode7.1 解决了这个问题,Apple Transport Security 的密钥也发生了一些变化。相关站点也已针对 https 连接进行了更新。
我能够在 Xcode 7.1 和模拟器 9.1 下使用 Info.plist 中的“允许任意加载”来访问 URL、http://152.111.198.244:
- 应用程序传输安全设置:字典
- 允许任意加载:布尔值 = YES
截图:
我使用了以下代码:
let url = NSURL(string: "http://152.111.198.244")!
let task = NSURLSession.sharedSession().dataTaskWithURL(url) {(data, response, error) -> Void in
print("response \(response!)")
}
task.resume()
这是我收到的回复:
response <NSHTTPURLResponse: 0x7fe1a2421f80> { URL: http://152.111.198.244/auth/login } { status code: 200, headers {
"Cache-Control" = "no-cache";
Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Length" = 1138;
"Content-Type" = "text/html; charset=UTF-8";
Date = "Fri, 23 Oct 2015 09:33:59 GMT";
"Keep-Alive" = "timeout=5, max=98";
Server = "Apache/2.4.7 (Ubuntu)";
"Set-Cookie" = "XSRF-TOKEN=eyJpdiI6IldBOWYxcDk3SEtMekJ3YTNSUm9mYUE9PSIsInZhbHVlIjoiTFBcL3RGWW10cjlONFFkeXY1ZDA4SWRkSURIYlFsOGE3QkFEV3hRNTVwRFJuWSt5SXN3OU55Sng4elduMHd1T1duV0VFQ1o4dDVjeDJTZGRFeXJxMjN3PT0iLCJtYWMiOiJiZjNmOTg0NTZmY2RkMGQzNmE2YWEyNjJiNzA1MDlmZjIwM2M3NWYyNjYwZjM5N2Q3ZTgxNjRjNzAzMGYzYmMzIn0%3D; expires=Fri, 23-Oct-2015 11:33:59 GMT; Max-Age=7200; path=/, laravel_session=eyJpdiI6InR5OSs3cmpObVRBbFhORnVJQjRvWFE9PSIsInZhbHVlIjoiSTJ2bk41RVVLZUR1a0xKbFwvalZXQWpsNEtWeHppUVpYVUlRM1ZjQXc5aDJxT1wvXC9uYkViaTQ0SCtGNTMrdmtiQXFOd0VJTFwvM0ZCbmFHZk5MWlwvZ3BBUT09IiwibWFjIjoiYjRmNzcxY2Q5NDFlZjYzZTI1YzU2YzI0YTkxM2M0NDg0MGY2YThiODIxOGZjOTgxYjNmM2FlZTkzZGMyZTdjOCJ9; expires=Fri, 23-Oct-2015 11:33:59 GMT; Max-Age=7200; path=/; httponly";
Vary = "Accept-Encoding";
"X-Powered-By" = "PHP/5.5.9-1ubuntu4.11";
} }
我也可以使用命名域 3d.media24.com 进行连接,但不能使用数字地址 152.111。 198.244 使用异常域。
截图:
我的结果与 Apple Technote on App Transport Security 中异常域的定义一致:
A dictionary of exceptions for the named domain. The name of the key is the name of the domain–for example, www.apple.com.
可以在应用传输安全设置下方添加一些有用的字段:
NSIncludesSubdomains
NSExceptionAllowInsecureHTTPLoads
NSExceptionRequiresForwardSecrecy
NSExceptionMinimumTLSVersion
NSThirdPartyExceptionAllowsInsecureHTTPLoads
NSThirdPartyExceptionMinimumTLSVersion
NSThirdPartyExceptionRequiresForwardSecrecy
希望对你有所帮助!
我正在尝试让我的应用程序通过 Apple Transport Security 连接到地址为 152.111.198.244 的 http 服务器。我正在尝试的任何东西都不起作用。
将 NSAllowsArbitraryLoads 键添加到我项目的 info.plist 文件中仍然不允许我的应用程序连接到这个特定的 IP 地址 152.111.198.244 我已经完成了关于 Apple Transport Security 的 technote。我安装了 OSX 10.11 来尝试使用
找到哪些设置可能适用于 URLnscurl --ats-diagnostics http://152.111.198.244
和
nscurl --ats-diagnostics http://152.111.198.244/publications/
在终端中。 nscurl 尝试的所有设置都会失败。我看过类似的问题
我开始认为可能某处存在错误,或者我遗漏了什么。 IP 地址是 Apple Transport Security 的问题吗?为什么?有没有办法让一个 IP 地址通过 ATS 工作?
更新:我添加了给我带来麻烦的特定 IP 地址。希望有人能够复制我在说什么。
更新:我将此记录为雷达中的错误,并收到一条消息说它是重复的。同时,这个问题中提到的IP地址现在已经有了域名http://3d.media24.com/但是很遗憾没有解决问题
更新:我将答案标记为正确。苹果似乎用 XCode7.1 解决了这个问题,Apple Transport Security 的密钥也发生了一些变化。相关站点也已针对 https 连接进行了更新。
我能够在 Xcode 7.1 和模拟器 9.1 下使用 Info.plist 中的“允许任意加载”来访问 URL、http://152.111.198.244:
- 应用程序传输安全设置:字典
- 允许任意加载:布尔值 = YES
截图:
我使用了以下代码:
let url = NSURL(string: "http://152.111.198.244")!
let task = NSURLSession.sharedSession().dataTaskWithURL(url) {(data, response, error) -> Void in
print("response \(response!)")
}
task.resume()
这是我收到的回复:
response <NSHTTPURLResponse: 0x7fe1a2421f80> { URL: http://152.111.198.244/auth/login } { status code: 200, headers {
"Cache-Control" = "no-cache";
Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Length" = 1138;
"Content-Type" = "text/html; charset=UTF-8";
Date = "Fri, 23 Oct 2015 09:33:59 GMT";
"Keep-Alive" = "timeout=5, max=98";
Server = "Apache/2.4.7 (Ubuntu)";
"Set-Cookie" = "XSRF-TOKEN=eyJpdiI6IldBOWYxcDk3SEtMekJ3YTNSUm9mYUE9PSIsInZhbHVlIjoiTFBcL3RGWW10cjlONFFkeXY1ZDA4SWRkSURIYlFsOGE3QkFEV3hRNTVwRFJuWSt5SXN3OU55Sng4elduMHd1T1duV0VFQ1o4dDVjeDJTZGRFeXJxMjN3PT0iLCJtYWMiOiJiZjNmOTg0NTZmY2RkMGQzNmE2YWEyNjJiNzA1MDlmZjIwM2M3NWYyNjYwZjM5N2Q3ZTgxNjRjNzAzMGYzYmMzIn0%3D; expires=Fri, 23-Oct-2015 11:33:59 GMT; Max-Age=7200; path=/, laravel_session=eyJpdiI6InR5OSs3cmpObVRBbFhORnVJQjRvWFE9PSIsInZhbHVlIjoiSTJ2bk41RVVLZUR1a0xKbFwvalZXQWpsNEtWeHppUVpYVUlRM1ZjQXc5aDJxT1wvXC9uYkViaTQ0SCtGNTMrdmtiQXFOd0VJTFwvM0ZCbmFHZk5MWlwvZ3BBUT09IiwibWFjIjoiYjRmNzcxY2Q5NDFlZjYzZTI1YzU2YzI0YTkxM2M0NDg0MGY2YThiODIxOGZjOTgxYjNmM2FlZTkzZGMyZTdjOCJ9; expires=Fri, 23-Oct-2015 11:33:59 GMT; Max-Age=7200; path=/; httponly";
Vary = "Accept-Encoding";
"X-Powered-By" = "PHP/5.5.9-1ubuntu4.11";
} }
我也可以使用命名域 3d.media24.com 进行连接,但不能使用数字地址 152.111。 198.244 使用异常域。
截图:
我的结果与 Apple Technote on App Transport Security 中异常域的定义一致:
A dictionary of exceptions for the named domain. The name of the key is the name of the domain–for example, www.apple.com.
可以在应用传输安全设置下方添加一些有用的字段:
NSIncludesSubdomains
NSExceptionAllowInsecureHTTPLoads
NSExceptionRequiresForwardSecrecy
NSExceptionMinimumTLSVersion
NSThirdPartyExceptionAllowsInsecureHTTPLoads
NSThirdPartyExceptionMinimumTLSVersion
NSThirdPartyExceptionRequiresForwardSecrecy
希望对你有所帮助!