使Android WebView安全的最佳实践清单

8

我正在开发一个应用程序,它主要使用原生代码编写,并支持Ice Cream Sandwich。但是,我需要添加一些WebViews。关于WebView的安全性有很多讨论,当我使用setJavaScriptEnabled(true)时,它会给出一个警告:“使用setJavaScriptEnabled可能会在您的应用程序中引入XSS漏洞,请仔细审核。”

我只想非常小心地使用WebView和setJavaScriptEnable(true)。我已经遵循了Android WebView安全提示建议。但是,没有最佳实践清单。

到目前为止,我所做的:

  1. Only load trusted content to WebView. Either from local html or from our back end.
  2. Intercept all requests from WebView by implementing

    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // magic
            return true;
        }
    });
    
  3. Make sure all back end requests are using https and only sent to our back end.
  4. Detect SSL warning.
  5. Checksum check local html/JavaScript files.
  6. Minify JavaScript files
  7. Update Security Provider to Protect Against SSL Exploits

除了针对WebView的保护措施外,还有一些其他的保护措施,比如加密消息和检查越狱等。

我还漏掉了什么吗?我的应用程序有多安全?

谢谢


2
继续完成你的应用程序,然后注意这个后面的事情 :) - CGeorgian
我们需要确保在发布到Google Play商店之前它是安全的。 - Steven
1
听起来你已经尽了你所能合理地做的一切。关键步骤是第一步和第三步。 - Antimony
谢谢您的评论。您想回答一下,我可以投票吗? - Steven
1个回答

10
根据文档

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

<manifest>
     <meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"
                android:value="true" />
      . . .
     <application> . . . </application> </manifest> 

WebView作为一个独立的APK分发,安全浏览器对于使用Android 5.0及以上设备的用户而言是可用的。只需在您的清单文件中添加一行代码,即可更新您的应用并立即提高大多数用户的安全性。


2
EnableSafeBrowsing 默认设置为 true,不是吗?“虽然 EnableSafeBrowsing 的默认值为 true,但有时您可能只想在特定情况下启用安全浏览或禁用它。Android 8.0(API 级别 26)及更高版本支持使用 setSafeBrowsingEnabled()”。 - TSlegaitis
2
它在application tag里面,不是吗? - Amg91
是的,与先前的评论一样,元数据标签不允许在清单文件中的应用程序标签之外使用。 - ziniestro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接