博客 RSS 订阅

Apache Cordova Android 3.5.1 更新
作者:Ian Clelland
2014年8月6日

周一,我们发布了 Cordova Android 3.5.1,以解决一些安全问题。之后,与最初的研究人员交谈后,我们意识到发布的安全公告的文本不太准确,因此我们对其进行了修改。

您可以在此处阅读修改后的博客文章。

CVE-2014-3502 中的问题是,Cordova 应用程序默认情况下会将它们无法加载的任何 URL 传递给 Android intent 系统进行处理。这允许开发人员构建打开电子邮件应用程序、地图或发送短信消息,甚至在系统浏览器中打开网页的 URL,但也允许恶意 URL 可能打开设备上的其他应用程序。这意味着如果有人可以在您的应用程序中执行他们自己的 JavaScript,他们可以使用设备上的其他应用程序将用户的数据“发送回家”。这就是为什么我们建议所有 Android 开发人员升级到 Cordova 3.5.1 的原因。

为了不破坏现有应用程序,Cordova 3.5.1 禁止明显的恶意 URL,但仍然会在其默认应用程序中打开诸如 sms:mailto:geo: 之类的链接。(毕竟,这是一个有用的功能,并且有许多已发布的应用程序依赖于该行为。)如果您想进一步限制,可以使用 Cordova 插件来自定义可以加载哪些 URL,以及哪些 URL 将被完全阻止。

作为一个非常简单的示例,我发布了一个示例插件,该插件会阻止所有外部应用程序加载。要使用它,请像这样安装它

cordova plugin add net.iclelland.external-app-block

或者随意从 GitHub 克隆它并进行调整以满足您的需求。

我们希望在下一个版本中将更灵活的解决方案内置到 Cordova 中,但与此同时,插件系统足够强大,可以允许您自己控制应用程序的此功能。