跳过内容

MASTG-BEST-0012: 在 WebView 中禁用 JavaScript

如果不需要JavaScript,请通过设置 setJavaScriptEnabled(false) 在WebViews中显式禁用它。

在WebViews中启用JavaScript会增加攻击面,并可能使您的应用程序面临严重的安全风险,包括

  • 跨站脚本 (XSS): 恶意 JavaScript 可以在 WebView 中执行,导致会话劫持、凭据盗窃或网页篡改。
  • 数据泄露: WebViews 可以访问敏感数据,例如 cookies、令牌或本地文件(例如,当启用 setAllowFileAccess(true)setAllowFileAccessFromFileURLs(true)setAllowContentAccess(true) 时,通过 file://content:// URI),如果设置了 setAllowUniversalAccessFromFileURLs(true),恶意脚本可以泄露这些数据。
  • 未经授权的设备访问: JavaScript 可以与 addJavascriptInterface 结合使用来利用暴露的本地 Android 接口,导致远程代码执行 (RCE)。

有时由于应用程序的要求,这可能是不可能的。 在这些情况下,请确保您已实施适当的输入验证、输出编码和其他安全措施。

注意:有时您可能希望使用常规 WebViews 的替代方案,例如 Trusted Web ActivitiesCustom Tabs,它们提供了一种更安全的方式在您的应用程序中显示 Web 内容。 在这些情况下,JavaScript 在浏览器环境中处理,该环境受益于最新的安全更新、沙箱和针对常见 Web 漏洞(如跨站脚本 (XSS) 和中间人 (MITM) 攻击)的缓解措施。

测试

MASTG-TEST-0251: 在WebViews中运行时使用内容提供程序访问API MASTG-TEST-0253: 在WebViews中运行时使用本地文件访问API MASTG-TEST-0252: 在WebViews中引用本地文件访问 MASTG-TEST-0250: 在WebViews中引用内容提供程序访问