Index
危険な WebView 設定 API への呼び出し
説明
アプリケーションで使用されるすべての WebView メソッドのリスト。
推奨事項
危険な WebView API の使用を軽減するには:
主な防御策 – 混在コンテンツを無効にする:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_NEVER_ALLOW);
}
ファイルアクセスを制限する:
webView.getSettings().setAllowFileAccess(false);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
webView.getSettings().setAllowFileAccessFromFileURLs(false);
webView.getSettings().setAllowUniversalAccessFromFileURLs(false);
}
JavaScript インターフェースを堅牢化する:
webView.removeJavascriptInterface("interfaceName"); // Remove if not needed
// If required, only expose minimal @JavascriptInterface methods
追加の保護対策:
-
本番環境での WebView デバッグを無効にする:
WebView.setWebContentsDebuggingEnabled(false); -
セーフブラウジングを有効にする(API 26+):
WebView.enableSafeBrowsing(context);
混在コンテンツを無効にし、ファイルアクセスを制限し、JavaScript ブリッジを安全にすることで、アプリの WebView 機能を安全に保ちながら、危険な WebView API に関連する主要な攻撃ベクトルを排除できます。
リンク
- DRD02-J. Do not allow WebView to access sensitive local resource through file scheme (CERT Secure Coding)
- DRD13. Do not provide addJavascriptInterface method access in a WebView which could contain untrusted content (CERT Secure Coding)
標準
- OWASP_MASVS_L1:
- MSTG_PLATFORM_6
- MSTG_PLATFORM_5
- OWASP_MASVS_L2:
- MSTG_PLATFORM_6
- MSTG_PLATFORM_5
- OWASP_MASVS_v2_1:
- MASVS_PLATFORM_2
- MASVS_PLATFORM_3