跳过内容

MASTG-TEST-0227: WebView 调试已启用

概述

WebView.setWebContentsDebuggingEnabled(true) API 允许对应用程序中的所有 WebView 进行调试。 此功能在开发期间可能很有用,但如果生产环境中保持启用状态,则会带来重大的安全风险。 启用后,连接的 PC 可以调试、窃听或修改应用程序中任何 WebView 内的通信。 有关更多详细信息,请参见“Android 文档”

请注意,此标志的运作独立于 AndroidManifest.xml 中的 debuggable 属性(请参见 AndroidManifest 中启用的可调试标志)。 即使应用程序未标记为可调试,仍然可以通过调用此 API 调试 WebView。

步骤

  1. 使用诸如 semgrep 等工具运行 在 Android 上进行静态分析 ,并在应用程序二进制文件中查找以下用法
    • WebView.setWebContentsDebuggingEnabled 设置为 true
    • ApplicationInfo.FLAG_DEBUGGABLE.

观察

输出应列出

  • 运行时调用 WebView.setWebContentsDebuggingEnabled 且值为 true 的所有位置。
  • ApplicationInfo.FLAG_DEBUGGABLE 的任何引用。

评估

如果无条件调用 WebView.setWebContentsDebuggingEnabled(true) 或在未检查 ApplicationInfo.FLAG_DEBUGGABLE 标志的情况下调用该函数,则测试用例失败。

缓解措施