针对敏感的 JavaScript 接口漏洞的修复方法

本文面向的是所发布的应用存在敏感 JavaScript 接口漏洞的开发者。

问题说明

请参阅 Play 管理中心中的通知

Play 管理中心内显示的最后期限过后,所有包含未修复安全漏洞的应用可能会从 Google Play 下架。

建议采取的行动

  1. 打开发送到帐号所有者电子邮件地址的 Google Play 电子邮件通知,了解有哪些应用受到影响以及解决相关问题的最后期限。
  2. 更新受影响的应用并修复漏洞。
  3. 提交受影响应用的更新版本。

重新提交后,我们会重新审核您的应用。审核过程可能需要几个小时才能完成。如果应用通过审核并成功发布,便无需进一步操作。如果应用未通过审核,则新版应用将无法发布,您会收到电子邮件通知。

更多详情

根据“设备和网络滥用”政策,“如果应用或第三方代码(例如 SDK)会在运行时加载 JavaScript,不得允许发生可能违反 Play 开发者政策的行为。”

在本文中,我们所称的 JavaScript 接口是指任何通过 WebView 的 addJavascriptInterface 方法向 WebView 公开功能的对象。有关 JavaScript 接口的说明,请参阅在 WebView 中构建 Web 应用 Google Developers 博客。

这类漏洞可能会允许通过 JavaScript 接口实施潜在的用户数据恶意软件违规行为。根据所公开的接口,这可能会导致发生意外的数据收集和渗漏,以及在应用或 SDK 开发者并不知情的情况下引入潜在有害应用。

我们建议您通过下列方法之一防范此漏洞:

方法 1:确保 WebView 不会在 JavaScript 界面中添加对象

请检查是否有任何 WebView 会加载不受信任的网络内容,并确保其 JavaScript 界面中没有添加对象。您可通过以下两种方法来达成此目的:

  1. 确保 JavaScript 接口中没有任何通过 addJavascriptInterface 调用而添加的对象。
  2. 在 WebView 加载不受信任的内容之前,通过 removeJavascriptInterfaceshouldInterceptRequest 中移除来自 JavaScript 接口的对象。

方法 2:确保不要通过 JavaScript 接口公开敏感功能

确保不会将任何敏感功能(例如需要权限的 Android API 调用)添加到 JavaScript 接口中。这包括不收集敏感数据(例如有关用户/设备的信息),不公开 API(例如无障碍功能或短信功能)。利用此方法,您可以通过多种方式修复漏洞:

  1. 重新实现所有需要敏感权限或收集敏感信息的功能,通过打包在应用中的代码调用相应功能。确保向用户提供醒目的披露声明
  2. 移除允许访问可通过接口访问的敏感功能或用户数据的所有函数。

方法 3:确保您的 WebView 不会向不受信任的内容公开敏感功能

如果您的 WebView 包含敏感功能,则无法加载来自未知来源的任意 JavaScript,并且必须提供关于所用数据或功能的醒目披露声明。确保 WebView 中仅会加载严格限定范围的网址和归应用开发者所有的内容。

如不修复该漏洞,应用将因潜在的违反 Play 政策行为受到违规处置。

我们随时为您提供帮助

如果您已阅读相关政策,并认为我们的决定可能有误,请与我们的政策支持团队联系。我们会在 2 个工作日内回复您。

感谢您一直以来对我们的大力支持,这有助于我们为开发者和用户缔造积极良好的 Google Play 使用体验。

 

该内容对您有帮助吗?

您有什么改进建议?
搜索
清除搜索内容
关闭搜索框
主菜单
11831139666488403348
true
搜索支持中心
true
true
true
true
true
92637
false
false