问题标签 [nsapptransportsecurity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 如何打印失败的 NSURLConnection url 以查找 NSAppTransportSecurity 异常集?
我的应用程序中的 webviews 从新的 iOS 9 NSAppTransportSecurity 标准中得到了这些错误:
我不知道这个错误是在哪里产生的,但基本上我想知道如何知道尝试了哪个 URL?
之后,我可以适当地配置 plist。
到目前为止,我已经设置了一个断点,- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
但是在收到错误时不会调用此代码。
security - 在 IOS 9 中允许 NSArbitrary 加载
我们是一个在线支付应用程序,允许用户通过信用卡、借记卡或网上银行向不同的商家付款。由于苹果在 IOS 9.0 中引入了 App Transport Security,我们在 UIWebView 中加载不同的银行 url 时遇到了问题。
ATS 要求所有银行网站都符合 TLS 1.2,但大多数银行仍在使用 SSL 或 TLS 1.0。基于各种堆栈溢出答案来绕过这个,我们必须明确允许该特定域符合 SSL 或 TLS 1.0,或者我们可以使用 NSAllowsArbitraryLoads 来允许所有银行 URL。由于我们无法跟踪我们想要使用 NSAllowsArbitraryLoads 方法的所有银行网址。
苹果是否拒绝使用 NSAllowsArbitraryLoads 的应用程序?
在 IOS 9 中启用 NSAllowsArbitraryLoads 会完全禁用 TLS 或 SSL 检查,还是仅删除 TLS 1.2 强制执行。
ios - 使用 ionic 和 cordova 的 iOS App Transport Security 问题
我在禁用 iOS App Transport Security 时遇到问题。首先,我正在使用 Visual Studio 在 Windows 10 下进行开发,并且我正在尝试通过我的 Windows 机器上的 remotebuild 在带有 XCode 7.1 的 Mac OSX 上构建应用程序。我正在使用带有cordova的Ionic框架和cordova-ios 3.9.2版
我搜索了很多如何解决我的问题,但没有任何效果。到目前为止,我尝试在 appname/platform/ios/appname/ 中编辑 appname-Info.plist 文件并添加以下内容:
我也试过这个条目:
两种选择都不起作用。我在我的 Mac 上检查了 Xcode 项目中的 appname-Info.plist 文件,但它不包含 NSAppTransportSecurity 密钥。我尝试在 Xcode 中手动添加它,然后一切正常,但我每次都更改本手册不是一种选择。
所以我也尝试将以下内容添加到 config.xml 中,这也应该将 NSAppTransportSecurity 添加到 appname-Inof.plist
这也没有任何效果。
然后我尝试按照本教程使用cordova白名单插件: http ://docs.ionic.io/docs/cordova-whitelist 。首先,我遇到了使用最新白名单版本的问题,因为它不适用于 cordova-ios v 3.9.2,仅适用于 4.0.0 或更高版本。然后我发现,我应该使用白名单版本 1.0.0。首先我可以添加它,因为在 VisualStudio 中,通过 git 存储库添加自定义插件时无法指定版本。我尝试使用以下命令手动添加它:
添加插件有效,但插件未在我的项目的 config.xml 中配置。我尝试使用以下行将其添加到那里:
这也没有奏效。
我尝试了很多东西,现在我有点困惑。如果cordova-ios 3.9.2,白名单到底是什么,我需要当前版本吗?在 plist 文件中创建白名单 NSAppTransportSecurity 密钥?是否有其他解决方案来处理应用程序传输安全?处理它的最佳方法是什么,是否有人知道,为什么所有解决方案都不适合我?
最好的,1ceman
ios - 即使 NSAppTransportSecurity 设置为 NSAllowsArbitraryLoads,initWithContentsOfURL 也为零
这行代码给了我一个内容为 nil 的 NSData 对象:
如果我在 Xcode 中查看urlString
(使用http
而不是https
),它给了我一个 URL,在浏览器中,它给了我有效的 JSON。
为了测试,我在 plist 中设置了这个:
但是,我仍然得到一个内容为零的 NSData 对象。如果它有帮助,那么一切都在NSAppTransportSecurity
要求之前工作,这就是我尝试设置的原因NSAllowsArbitraryLoads
。
有什么建议我还能尝试吗?
==== 更新
(null)
在控制台中给出。
ios - iOS 9 ATS - 为所有域禁用前向保密
在 iOS 9 中启用 ATS 后,我的许多客户都无法满足前向保密要求。但是,它们可以满足 https 和 TLS 1.2 的要求。因此,我想放宽前向保密要求,同时保持 https 和 TLS 1.2 到位。
我想知道是否有人想出了一种方法来使用 NSExceptionRequiresForwardSecrecy 或 NSThirdPartyExceptionRequiresForwardSecrecy 来禁用所有域的前向保密。
我尝试将 * 用于 NSExceptionDomains 或 *.com,但是当我使用时,问题链接不起作用。当我使用它的 domain.com 时,问题链接将加载。我正在查看上面的Apple Docs,但没有看到任何方法可以实现我的目标。
是否可以仅禁用所有域的前向保密,就像您可以通过将 NSAppTransportSecurity/NSAllowsArbitraryLoads 设置为 true 来完全禁用 ATS 一样?
谢谢!
swift - 如何在运行时设置 NSAppTransportSecurity?
我已经知道我可以NSAppTransportSecurity
在我的Info.plist
文件中进行配置,例如设置NSAllowsArbitraryLoads
为 1 以允许 WKWebView 通过 http 访问文件。但是假设我想创建特定于域的异常,但直到运行时才知道异常是什么。(例如,假设我需要在开发环境中访问 http,但如果我发现我在运行时处于生产状态,我不想要任何异常)。有没有办法NSAppTransportSecurity
在运行时以编程方式设置?
ios - App Transport Security 已禁用,但仍出现 SSL 握手错误
我无法通过 HTTPS/SSL 连接到 API。我已经使用下面的字典完全禁用了应用程序传输安全 (ATS)(尽管 SSL 证书通过了 NSCURL 的所有测试)。
但是:仍然存在 SSL 握手错误(如下),当谷歌搜索时,它仅表明它与应用程序传输安全性有关。
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
我创建了一个演示该问题的最小示例项目,可在 GitHub (https://github.com/samheather/AppTransportSecurityDemo) 上找到。您应该会发现在运行项目时它会在几秒钟内崩溃(在它尝试在 viewDidLoad 中建立连接之后)。
我尝试连接的域是https://demo.heather.sh,并且具有响应的证书(以便可以查看证书)的示例 URL 是https://demo.heather.sh :443/在线检查。
有什么想法吗?
谢谢!
山姆
ios - 应用程序传输安全,异常域问题
在 iOS 应用程序中,我遇到了应用程序传输安全问题:
我在网上阅读了很多帖子,但由于某种原因,我在 Info.plist 中设置的内容似乎被忽略了。我尝试了几种可能性,这是最后一种:
但是无论我在 Info.plist 中设置什么,我都会不断收到此消息:
我会错过什么?
ssl - App Transport Security 有时会拒绝有效的 HTTPS 服务器
我正面临着如下描述的痛苦:
我的 iOS 应用程序被定义为连接到我们公司的服务器,这是一个满足 iOS9 应用程序传输安全策略所需的所有要求的 HTTPS 应用程序
该应用程序适用于大多数用户
但有时有些用户/设备由于 -1022 错误而无法连接,表明 ATS 拒绝了我们的 HTTPS 服务器,因为它是明文服务器(?!)
删除并重新安装完全相同的版本后,这些用户/设备可以无缝连接到我们的服务器
那么有没有人遇到过同样的问题呢?任何人都可以帮助解决问题吗?
注意:我强烈反对将我的域添加到 plist 或使用 nsallowsarbitraryloads,因为我们服务器的 ssl 证书是严格有效的并且满足要求。
非常感谢!
ios - NSExceptionAllowsInsecureHTTPLoads 和 NSThirdPartyExceptionAllowsInsecureHTTPLoads 有什么区别?
在 iOS 9 中,我可以将密钥添加到我的 info.plist 以禁用 App Transport Security。有两个键NSExceptionAllowsInsecureHTTPLoads
和NSThirdPartyExceptionAllowsInsecureHTTPLoads
,它们定义为:
一个可选的布尔值,当设置为 YES 时,允许不安全的 HTTP 加载。使用此键描述您的应用程序对您可以控制其安全属性的域的预期网络行为。
和
NSExceptionAllowsInsecureHTTPLoads 密钥的一个版本,用于配置与您无法控制其安全属性的域的连接。
它们指的是什么安全属性?为什么我的意图很重要?
在什么情况下我会使用其中一种而不是另一种?