【发布时间】:2019-04-05 07:55:38
【问题描述】:
大家好,
我收到一封来自 google play 的电子邮件,内容涉及我发布的一个或多个应用程序中的跨应用程序脚本漏洞。我在我的应用程序中使用 WebView,所以他们说我的应用程序包含 webView 跨应用程序脚本问题,这可能允许恶意应用程序窃取用户 cookie 和其他数据。他们给出了我将要采取的行动,那就是
需要采取行动
请按照以下步骤解决您的应用程序存在的问题(列于本电子邮件末尾)。您可以参阅 Play 管理中心中的通知,了解解决此问题的截止日期。在此截止日期之后,如果漏洞仍然存在,受影响应用程序的更新将被阻止。您发布的 APK 版本将不受影响。 其他详细信息
启用 JavaScript 并加载从不受信任的 Intent 读取的数据的 WebView 可能会被恶意应用欺骗,使其在不安全的上下文中执行 JavaScript 代码。您应该通过以下方式之一防止此漏洞:
选项 1:确保不导出受影响的活动
查找任何具有受影响 WebView 的活动。如果这些活动不需要从其他应用程序中获取 Intent,您可以为清单中的活动设置 android:exported=false。这可确保恶意应用无法向这些 Activity 中的任何 WebView 发送有害输入。
选项 2:保护导出活动中的 WebView
如果您想将受影响的 WebView 设置为导出的 Activity,那么我们建议您进行以下更改:
更新你的 targetSdkVersion
确保您的 targetSdkVersion 符合 Google Play 的目标 API 级别要求。 targetSdkVersion 为 16 或更低的应用程序在当前加载的页面上下文中评估传递给 loadUrl 的 JavaScript URL。针对 SDK 版本 16 或更低版本并使用来自不受信任的 Intent 的未经处理的输入调用 loadUrl,攻击者可以在受影响的 WebView 中执行有害脚本。
保护对评估Javascript的调用
确保评估Javascript 的参数始终是可信的。使用来自不受信任的 Intent 的未经处理的输入调用 evaluateJavascript,攻击者可以在受影响的 WebView 中执行有害脚本。
防止不安全的文件加载
确保受影响的 WebView 无法加载 cookie 数据库。从不受信任的 Intent 中加载未经处理的 file:// URL 的 WebView 可能会被恶意应用程序以下列方式攻击。恶意网页可以将脚本标签写入 cookie 数据库,然后恶意应用程序可以发送带有指向您的 WebView cookie 数据库的 file:// URL 的 Intent。如果 cookie 数据库加载到 WebView 中,恶意脚本就会执行,并且可以窃取会话信息。
您可以通过两种方式确保受影响的 WebView 无法加载 WebView cookie 数据库。您可以禁用所有文件访问,也可以验证任何加载的 file:// URL 是否指向安全文件。请注意,攻击者可以使用符号链接来欺骗对 URL 路径的检查。为防止此类攻击,请务必在加载之前检查任何不受信任的 file:// URL 的规范路径,而不是仅检查 URL 路径。
所以我的问题是
如果我进行了电子邮件中提到的更改,这将如何影响我的应用程序?
我的应用程序的任何功能会被禁用吗?
【问题讨论】:
-
你解决了吗?我也一样。
标签: android android-webview android-security google-play-console