最佳做法清单,以确保Android WebView安全

Ste*_*ven 3 xss android webview android-security

我正在开发一个主要使用本机语言编写并支持Ice Cream Sandwich的应用程序。但是,我需要添加一些WebView。关于WebView安全性的讨论很多,当我使用setJavaScriptEnabled(true)时,它会向我发出警告:“使用setJavaScriptEnabled会将XSS漏洞引入您的应用程序中,请仔细检查。”

只是要非常小心使用WebView和setJavaScriptEnable(true)。我遵循了Android WebView安全提示建议。但是没有最佳实践检查表。

到目前为止,我所做的是:

  1. 仅将受信任的内容加载到WebView。从本地html或从我们的后端。
  2. 通过实施拦截来自WebView的所有请求

    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // magic
            return true;
        }
    });
    
    Run Code Online (Sandbox Code Playgroud)
  3. 确保所有后端请求都使用https,并且仅发送到我们的后端。
  4. 检测SSL警告。
  5. 校验和检查本地html / JavaScript文件。
  6. 缩小JavaScript文件
  7. 更新安全提供程序以防止SSL攻击

还有一些其他不是专门针对WebView的保护,例如加密消息和越狱检查等。

还有什么我想念的吗?我的应用程序有多安全?

谢谢

And*_*per 5

根据文档

要为您的应用程序中的所有WebView启用安全浏览,请添加清单标签:

<manifest>
     <meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"
                android:value="true" />
      . . .
     <application> . . . </application> </manifest> 
Run Code Online (Sandbox Code Playgroud)

由于WebView是作为单独的APK分发的,因此,适用于运行Android 5.0及更高版本的设备今天可以使用Web浏览的安全浏览。您只需在清单中添加一行,就可以立即更新应用并为大多数用户提高安全性。

  • 默认情况下,EnableSafeBrowsing 不是设置为 true 吗?“虽然 EnableSafeBrowsing 的默认值为 true,但有时您可能只想有条件地启用安全浏览或禁用它。Android 8.0(API 级别 26)和使用 setSafeBrowsingEnabled() 的更高支持” (2认同)
  • 它位于[应用程序标签](https://developer.android.com/guide/webapps/managing-webview)内,不是吗? (2认同)