使 Android WebView 安全的最佳实践清单
Best practice check list to make Android WebView Secure
我正在开发一个主要用 Native 编写并支持 Ice Cream Sandwich 的应用程序。但是,我需要添加一些 WebView。有很多关于 WebView 安全性的讨论,当我使用 setJavaScriptEnabled(true) 时,它给了我一个警告:"Using setJavaScriptEnabled can introduce XSS vulnerabilities into you application, review carefully."
只是想非常小心地使用 WebView 并设置JavaScriptEnable(true)。我关注了Android WebView Security Tips and suggestions。但是没有最佳实践检查表。
到目前为止我做了什么:
- 只将受信任的内容加载到 WebView。来自本地 html 或来自我们的后端。
通过实现
拦截来自WebView的所有请求
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// magic
return true;
}
});
- 确保所有后端请求都使用 https 并且只发送到我们的后端。
- 检测到 SSL 警告。
- 校验和检查本地 html/JavaScript 个文件。
- 缩小 JavaScript 个文件
- Update Security Provider to Protect Against SSL Exploits
还有一些不是专门针对WebView的其他保护措施,例如加密消息和越狱检查等
还有什么我想念的吗?我的应用安全吗?
谢谢
根据doc,
To enable Safe Browsing for all WebViews in your app, add in a
manifest tag:
<manifest>
<meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"
android:value="true" />
. . .
<application> . . . </application> </manifest>
Because WebView is distributed as a separate APK, Safe Browsing for
WebView is available today for devices running Android 5.0 and above.
With just one added line in your manifest, you can update your app and
improve security for most of your users immediately.
我正在开发一个主要用 Native 编写并支持 Ice Cream Sandwich 的应用程序。但是,我需要添加一些 WebView。有很多关于 WebView 安全性的讨论,当我使用 setJavaScriptEnabled(true) 时,它给了我一个警告:"Using setJavaScriptEnabled can introduce XSS vulnerabilities into you application, review carefully."
只是想非常小心地使用 WebView 并设置JavaScriptEnable(true)。我关注了Android WebView Security Tips and suggestions。但是没有最佳实践检查表。
到目前为止我做了什么:
- 只将受信任的内容加载到 WebView。来自本地 html 或来自我们的后端。
通过实现
拦截来自WebView的所有请求webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // magic return true; } });
- 确保所有后端请求都使用 https 并且只发送到我们的后端。
- 检测到 SSL 警告。
- 校验和检查本地 html/JavaScript 个文件。
- 缩小 JavaScript 个文件
- Update Security Provider to Protect Against SSL Exploits
还有一些不是专门针对WebView的其他保护措施,例如加密消息和越狱检查等
还有什么我想念的吗?我的应用安全吗?
谢谢
根据doc,
To enable Safe Browsing for all WebViews in your app, add in a manifest tag:
<manifest> <meta-data android:name="android.webkit.WebView.EnableSafeBrowsing" android:value="true" /> . . . <application> . . . </application> </manifest>
Because WebView is distributed as a separate APK, Safe Browsing for WebView is available today for devices running Android 5.0 and above. With just one added line in your manifest, you can update your app and improve security for most of your users immediately.