You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PLAY CONSOLE WEB VIEW Cross App Scripting漏洞修复问题咨询

WebView Cross App Scripting漏洞修复方案(保留JavaScript能力场景)

安全浏览仅能拦截已知的恶意网页资源,无法覆盖Cross App Scripting(XAS)漏洞的所有利用场景,这类漏洞的触发核心是未授权的JS代码可以调用Native侧能力或者获取敏感数据,仅开启安全浏览不足以满足Google Play的安全要求,你可以按照以下步骤完成加固,即可在保留JS能力的前提下通过审核:

  • 严格配置域名白名单:重写shouldOverrideUrlLoading和shouldInterceptRequest方法,所有非白名单内的链接一律跳转系统浏览器打开,禁止在当前WebView实例加载。如果应用仅加载本地HTML文件,需禁止本地文件与远程网络内容混合加载,将setAllowFileAccess、setAllowContentAccess、setAllowFileAccessFromFileURLs、setAllowUniversalAccessFromFileURLs参数均显式设置为false。
  • 收紧JS接口权限:如果你通过addJavascriptInterface给WebView注册了Native调用接口,仅给加载白名单域名的WebView实例注册接口,加载外部不可信内容的WebView不要注册任何Native接口。所有JS接口的入参必须做合法性校验,禁止接口返回用户通讯录、定位、设备唯一标识等隐私数据。Android 17及以上系统原生要求JS可调用方法必须加@JavascriptInterface注解,如果你需要兼容更低系统版本,需要额外做调用来源校验,禁止未授权的方法调用。
  • 强化WebSettings安全配置:将setMixedContentMode设为MIXED_CONTENT_NEVER_ALLOW,禁止HTTP和HTTPS混合内容加载;显式调用setSavePassword(false)禁用密码保存功能,避免敏感信息泄露。
  • 严格转义动态JS内容:如果你通过loadUrl("javascript:xxx")或者evaluateJavascript执行动态拼接的JS代码,所有动态传入的变量必须做HTML转义和JS特殊字符转义,防止注入payload被执行。
  • 校验外部传入的加载地址:如果你的WebView支持通过Deep Link或外部Intent传入地址加载,必须校验跳转的URL是否在白名单内,禁止直接加载未校验的外部传入地址,避免恶意应用构造恶意链接触发漏洞。

审核提报提示:提交Google Play审核时,可以在审核备注中说明你已完成上述所有安全加固,标注无法禁用JS的业务原因,同时说明你已通过白名单限制、权限收紧等方式完全封堵了XAS漏洞的利用路径,绝大多数场景下均可正常通过审核。

内容的提问来源于stack exchange,提问作者Adrian Sosa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:36:03