【问题标题】:Apache Cordova security vulnerabilityApache Cordova 安全漏洞
【发布时间】:2016-03-09 07:31:37
【问题描述】:

我最近向 Google Play 上传了一个 Android 应用程序,我收到了众所周知的安全漏洞警告 Apache Cordova security vulnerability。我有点困惑,因为我使用的是 Cordova CLI 6.0.0 和 Cordova Android 5.1.1。我做错了什么?

项目信息:

>cordova platform ls
Installed platforms: android 5.1.1
Available platforms: amazon-fireos, blackberry10, browser, firefoxos, webos, windows, windows8, wp8

>cordova --version
6.0.0

>cordova plugin ls
cordova-plugin-device 1.1.2-dev "Device"
cordova-plugin-dialogs 1.2.1-dev "Notification"
cordova-plugin-file 4.1.2-dev "File"
cordova-plugin-file-transfer 1.5.1-dev "File Transfer"
cordova-plugin-geolocation 2.1.1-dev "Geolocation"
cordova-plugin-globalization 1.0.3-dev "Globalization"
cordova-plugin-inappbrowser 1.3.1-dev "InAppBrowser"
cordova-plugin-network-information 1.2.1-dev "Network Information"
cordova-plugin-splashscreen 3.2.1-dev "Splashscreen"
cordova-plugin-whitelist 1.2.2-dev "Whitelist"

我尝试在 config.xml 中添加/删除下一行

<plugin name="cordova-plugin-whitelist" spec="1" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
    <allow-intent href="market:*" />
</platform>

我也尝试在 index.html 中添加和删除下一行

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

这是我从 Google Play 团队收到的电子邮件:

Google Play 开发者您好,

我们拒绝了 XXXXXX,包裹 ID XXXXXXX,因为 违反我们的恶意行为政策。如果您提交了更新, 您的应用的旧版本仍可在 Google Play 上找到。

此应用使用包含安全漏洞的软件 用户。

下面是漏洞列表和对应的APK 在您最近提交的版本中检测到的版本。请升级 尽快增加您的应用程序的版本号 升级后的 APK。

漏洞 APK 版本 Apache Cordova 已在 Apache Cordova v.3.5.1 中修复。

您可以在此Google Help Center article 中找到更多信息和后续步骤。

【问题讨论】:

  • 在您的项目中搜索旧的 cordova.js 文件

标签: android cordova google-play android-security


【解决方案1】:

正如@jcesarmobile 所说,cordova 项目中有几个cordova.js 文件。我不仅必须更新 www 文件夹中的主要 cordova.js 文件,而且还必须手动更新其他文件夹中的这个文件(例如 /platform/android/assets/www);然后我可以在 Google Play 中上传没有安全警告的新版本。

【讨论】:

    【解决方案2】:

    一个远景——虽然他们正在寻找 XSS 曝光,但谷歌没有明确提到这一点——但你是否可能在你的 index.html 中添加了一个“不安全内联”到 index.html 以允许包含内联 Jscript ?

    【讨论】:

    • 没有。我的 index.html 中没有使用任何安全策略