您正在使用 X509TrustManager 的不安全实现
You are using an unsafe implementation of X509TrustManager
我在 Google Play 中有一个应用程序,今天我收到一封来自 Google 的邮件说:
Google Play warning: You are using an unsafe implementation of
X509TrustManager
它说明了 SSL 证书问题以及解决问题的方法。
出于好奇,我问这个问题,
- 实际上这个警告是关于什么的?
- 我的应用程序(它是本地数据库驱动的应用程序)中没有使用任何与网络相关的活动,那么为什么我的应用程序会出现此警告?
更多详情:
我的应用程序是使用 Appcelerator Titanium 构建的,google 说此实现在 ti.modules.titanium.network.NonValidatingTrustManager;
中。我确定我从未在我的代码中使用过这样的 class。
Actually what is this warning all about ?
您应该已链接到 this page,它解释了它的全部内容。简而言之,Google 正在扫描应用程序以查找搞砸 SSL 的人,例如盲目接受所有证书均有效。
I'm not using any network related activities in my app (it's a local database driven app), so why this warning occurred for my app?
因为您的 APK 中的其他东西已经做到了这一点。在 的情况下,它是一个图书馆。
My app was built using Appcelerator Titanium and google says this implementation is in ti.modules.titanium.network.NonValidatingTrustManager;. I'm sure that I never used such a class in my code.
您可能没有直接使用过它。但是,其他东西正在使用它。或者,也许它存在是因为它只是整个 Titanium 框架的一部分并且保留在您的 APK 中。
读这个:
http://docs.appcelerator.com/platform/latest/#!/guide/SSL_Certificate_Store_Support_for_HTTP_Clients
这一切都是为了 Google 推动所有人使用 https。如果您在您的应用程序中使用 Titanium.Network.createHTTPClient 对象,那么您必须使用以下方法实现它:
var certificateStore = require('ti.certificatestore').
模块可以在这里找到:https://github.com/appcelerator-modules/ti.certificatestore
我刚刚在我的应用程序上收到了同样的消息。指定为 OP 的同一模块。
ti.modules.titanium.network.NonValidatingTrustManager;
到目前为止我的研究有几点:
- http://docs.appcelerator.com/platform/latest/#!/guide/SSL_Certificate_Store_Support_for_HTTP_Clients 确实讨论了问题并为 iOS 和 Android 提供了示例。然而:
- 每个 OS 的示例都不同,需要创建或下载模块(Android 已经有几年了)
- 文档明确指出不再支持这些方法,
You should instead use the HTTPClient's securityManager property to
implement support for SSL Certificate Stores.
不幸的是,SecurityManagerProtocol 文档没有示例。我能找到的少数参考文献 (http://docs.appcelerator.com/platform/latest/#!/api/Modules.Https) 需要使用 modules.https,它只是一个付费模块。
我还有一个问题:如果 Google 拒绝所有具有此特定问题的 Appcelerator 应用程序,并且只有付费订阅的开发人员才能获得官方支持的解决方案,这是否意味着 Appcelerator 'community edition' 与 Google Play 正式不兼容? Appcelerator 是否计划为其社区成员正式支持 HTTPS?
Appcelerator 的任何人都可以发表评论吗?
谢谢,
大卫
问题与js代码无关。它在 Titanium sdk 中,无论您是否使用某些功能。
我认为可能的解决方案是重写 class
https://github.com/appcelerator/titanium_mobile/blob/bc85170157d3bebc5de1d61a9fe6e34bce84a8c9/android/modules/network/src/java/ti/modules/titanium/network/NonValidatingTrustManager.java
我们应该创建 X509TrustManager 的安全实现
Appcelerator 正在 JIRA 上跟踪此问题:
https://jira.appcelerator.org/browse/TIMOB-20431
我们还发布了一个博客 post,其中包含以下信息:
http://www.appcelerator.com/blog/2016/02/google-security-alert-unsafe-implementation-of-the-interface-x509trustmanager/
该电子邮件谈到新提交 (!) 应用程序和更新的截止日期为 5 月 17 日。我们会及时准备好修复和说明。
我在 Google Play 中有一个应用程序,今天我收到一封来自 Google 的邮件说:
Google Play warning: You are using an unsafe implementation of X509TrustManager
它说明了 SSL 证书问题以及解决问题的方法。
出于好奇,我问这个问题,
- 实际上这个警告是关于什么的?
- 我的应用程序(它是本地数据库驱动的应用程序)中没有使用任何与网络相关的活动,那么为什么我的应用程序会出现此警告?
更多详情:
我的应用程序是使用 Appcelerator Titanium 构建的,google 说此实现在 ti.modules.titanium.network.NonValidatingTrustManager;
中。我确定我从未在我的代码中使用过这样的 class。
Actually what is this warning all about ?
您应该已链接到 this page,它解释了它的全部内容。简而言之,Google 正在扫描应用程序以查找搞砸 SSL 的人,例如盲目接受所有证书均有效。
I'm not using any network related activities in my app (it's a local database driven app), so why this warning occurred for my app?
因为您的 APK 中的其他东西已经做到了这一点。在
My app was built using Appcelerator Titanium and google says this implementation is in ti.modules.titanium.network.NonValidatingTrustManager;. I'm sure that I never used such a class in my code.
您可能没有直接使用过它。但是,其他东西正在使用它。或者,也许它存在是因为它只是整个 Titanium 框架的一部分并且保留在您的 APK 中。
读这个: http://docs.appcelerator.com/platform/latest/#!/guide/SSL_Certificate_Store_Support_for_HTTP_Clients
这一切都是为了 Google 推动所有人使用 https。如果您在您的应用程序中使用 Titanium.Network.createHTTPClient 对象,那么您必须使用以下方法实现它:
var certificateStore = require('ti.certificatestore').
模块可以在这里找到:https://github.com/appcelerator-modules/ti.certificatestore
我刚刚在我的应用程序上收到了同样的消息。指定为 OP 的同一模块。
ti.modules.titanium.network.NonValidatingTrustManager;
到目前为止我的研究有几点:
- http://docs.appcelerator.com/platform/latest/#!/guide/SSL_Certificate_Store_Support_for_HTTP_Clients 确实讨论了问题并为 iOS 和 Android 提供了示例。然而:
- 每个 OS 的示例都不同,需要创建或下载模块(Android 已经有几年了)
- 文档明确指出不再支持这些方法,
You should instead use the HTTPClient's securityManager property to implement support for SSL Certificate Stores.
-
不幸的是,
SecurityManagerProtocol 文档没有示例。我能找到的少数参考文献 (http://docs.appcelerator.com/platform/latest/#!/api/Modules.Https) 需要使用 modules.https,它只是一个付费模块。
我还有一个问题:如果 Google 拒绝所有具有此特定问题的 Appcelerator 应用程序,并且只有付费订阅的开发人员才能获得官方支持的解决方案,这是否意味着 Appcelerator 'community edition' 与 Google Play 正式不兼容? Appcelerator 是否计划为其社区成员正式支持 HTTPS?
Appcelerator 的任何人都可以发表评论吗? 谢谢, 大卫
问题与js代码无关。它在 Titanium sdk 中,无论您是否使用某些功能。 我认为可能的解决方案是重写 class https://github.com/appcelerator/titanium_mobile/blob/bc85170157d3bebc5de1d61a9fe6e34bce84a8c9/android/modules/network/src/java/ti/modules/titanium/network/NonValidatingTrustManager.java
我们应该创建 X509TrustManager 的安全实现
Appcelerator 正在 JIRA 上跟踪此问题: https://jira.appcelerator.org/browse/TIMOB-20431
我们还发布了一个博客 post,其中包含以下信息: http://www.appcelerator.com/blog/2016/02/google-security-alert-unsafe-implementation-of-the-interface-x509trustmanager/
该电子邮件谈到新提交 (!) 应用程序和更新的截止日期为 5 月 17 日。我们会及时准备好修复和说明。