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 Activities 或 Custom Tabs,它们提供了一种更安全的方式在您的应用程序中显示 Web 内容。 在这些情况下,JavaScript 在浏览器环境中处理,该环境受益于最新的安全更新、沙箱和针对常见 Web 漏洞(如跨站脚本 (XSS) 和中间人 (MITM) 攻击)的缓解措施。
测试¶
MASTG-TEST-0251: 在WebViews中运行时使用内容提供程序访问API MASTG-TEST-0253: 在WebViews中运行时使用本地文件访问API MASTG-TEST-0252: 在WebViews中引用本地文件访问 MASTG-TEST-0250: 在WebViews中引用内容提供程序访问