Google Play警告:您的应用包含跨应用脚本漏洞

时间:2018-11-01 04:56:21

标签: android android-webview android-security google-play-console

大家好,

我从Google Play收到了一封电子邮件,内容涉及我发布的一个或多个应用中的跨应用脚本漏洞。我在应用程序中使用了 WebView ,因此他们说我的应用程序包含webView跨应用程序脚本问题,该问题可能使恶意应用程序窃取用户Cookie和其他数据。他们会采取我要采取的行动,那就是

  

需要采取的行动

     

请按照以下步骤解决您的应用程序的问题(在此电子邮件的末尾列出)。您可以参考Play控制台中的通知,以获取解决此问题的截止日期。在此期限之后,如果漏洞仍然存在,将阻止对受影响的应用程序进行更新。您发布的APK版本不会受到影响。      其他详细信息

     

启用JavaScript并加载从不受信任的Intent读取的数据的WebView可能会被恶意应用欺骗,以在不安全的上下文中执行JavaScript代码。您应该通过以下其中一种方式来防止此漏洞:

     

选项1:确保不导出受影响的活动

     

使用受影响的WebView查找任何活动。如果这些活动不需要从其他应用程序获取意图,则可以在清单中为活动设置android:exported = false。这样可以确保恶意应用程序不会向这些活动中的任何WebView发送有害输入。

     

选项2:在导出的活动中保护WebViews

     

如果您要设置一个活动,并且将受影响的WebView导出,则我们建议您进行以下更改:

     

更新您的targetSdkVersion

     

确保您的targetSdkVersion符合Google Play的目标API级别要求。 targetSdkVersion为16或更低的应用会评估在当前加载的页面上下文中传递给loadUrl的JavaScript URL。以SDK版本16或更低版本为目标,并使用来自不受信任的Intent的未经消毒的输入来调用loadUrl,攻击者可以在受影响的WebView中执行有害的脚本。

     

保护对评估Javascript的调用

     

确保评估Javascript的参数始终受信任。使用来自不受信任的Intent的未经消毒的输入来调用valuateJavascript,攻击者可以在受影响的WebView中执行有害的脚本。

     

防止不安全的文件加载

     

确保受影响的WebView无法加载cookie数据库。恶意应用可以通过以下方式来攻击从不受信任的Intent中加载未经过滤的file:// URL的WebView。恶意网页可以将脚本标签写入cookie数据库,然后恶意应用程序可以使用文件:// URL指向WebView Cookies数据库发送Intent。如果将cookie数据库加载到WebView中,该恶意脚本将执行,并且可以窃取会话信息。

     

您可以确保受影响的WebView无法以两种方式加载WebView Cookies数据库。您可以禁用所有文件访问权限,也可以验证所有已加载的file:// URL都指向安全文件。请注意,攻击者可以使用符号链接来欺骗URL路径。为防止此类攻击,请确保在加载之前检查任何不受信任的file:// URL的规范路径,而不仅仅是检查URL路径。

所以我的问题是

  1. 如果我进行了电子邮件中提到的更改,这将如何影响我的应用?

  2. 我的应用程序的任何功能都将被禁用吗?

6 个答案:

答案 0 :(得分:1)

答案是,这取决于您使用WebViews的目的。如果您只是将WebView用作通过HTML显示用户界面的便捷方式,则无论是硬编码在应用程序中还是从Web服务器加载,都不会有问题。只需遵循选项1,其他应用将无法对您的网络视图进行CSS攻击。

如果您的应用程序设计为具有其他应用程序使用的Web视图,则答案要复杂得多。您需要提供更多信息,以了解您将活动与Webview一起使用的原因,以及问题中其他应用应如何使用它们。

答案 1 :(得分:0)

Simplw回答您的应用程序中不会有任何更改。 基本上

什么是跨应用程序脚本(CAS)?

跨应用程序脚本(CAS)是一个漏洞,会影响无法详尽检查输入的应用程序。 CAS允许攻击者插入修改特定应用程序行为的数据。这使得可以从用户系统内部提取数据。利用CAS漏洞,攻击者可能会获得被攻击应用程序的全部特权;这种攻击在某种程度上与底层操作系统和硬件体系结构无关。

因此,只需在您的Web应用程序中进行更改即可。

转到此网址以获取更多信息

https://www.acunetix.com/websitesecurity/cross-site-scripting/

答案 2 :(得分:0)

此事件发生后,您的排名下降了吗?

答案 3 :(得分:0)

转到Android清单,如果网络活动具有android:exported=”true“,请将其更改为android:exported=”false“

转到清单,然后在Webview活动中添加以下行

<meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"
android:value="true" />

答案 4 :(得分:0)

After a lot of struggle, below things worked for me       


 mWebView.getSettings().setAppCacheMaxSize(0);
 mWebView.getSettings().setAllowFileAccess(false);
 mWebView.getSettings().setAppCacheEnabled(false);

<meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"
android:value="true" />

答案 5 :(得分:0)

我的应用需要使用 WebView 来访问网站和本地文件。我按照电子邮件中提供的说明进行操作:

<块引用>
  1. 保护对evaluateJavascript 和loadUrl 的调用
  2. 防止不安全的文件加载。

并通过了跨应用脚本漏洞测试。第 1 步是阻止使用 Javascript URL 方案 的链接,该链接以“javascript:”开头,第 2 步是如果本地文件链接不在您的应用程序文件夹中,则阻止本地文件链接.

如果您的 WebView 不需要使用 Javascript 网址方案,并且您的 WebView,我认为这些更改不会影响您的应用不需要访问应用文件夹之外的本地文件。