跳过内容

MASTG-BEST-0011: 在 WebView 中安全加载文件内容

安全地将文件内容加载到 WebView 的推荐方法是使用 WebViewClient 以及 WebViewAssetLoader,使用 https:// URL 从应用的 assets 或 resources 目录加载资源,而不是使用不安全的 file:// URL。 这可以确保内容在安全、同源的环境中加载,并避免将本地文件暴露给潜在的跨域攻击。

如果必须允许 WebView 使用 file:// 协议加载本地文件,请考虑以下事项:

  • 对于 minSdkVersion 中 WebView 文件访问方法具有安全默认值的应用程序,请确保不使用这些方法,并保留默认值。 或者,显式将它们设置为 false,以保证 WebView 不允许本地文件访问。

    • setAllowFileAccess(false)
    • setAllowFileAccessFromFileURLs(false)
    • setAllowUniversalAccessFromFileURLs(false)
  • 对于 minSdkVersion 中这些方法没有安全默认值的应用程序(例如,较旧的 API 级别),请确保在 WebView 配置中显式地将上述方法设置为 false

有关更多详细信息,请参阅关于安全加载本地内容的官方 Android 文档,特别是关于“需要避免的事项”的部分。

测试

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