コンテンツにスキップ

Index

危険な WebView 設定 API への呼び出し

説明

アプリケーションで使用されるすべての WebView メソッドのリスト。

推奨事項

危険な WebView API の使用を軽減するには:

主な防御策 – 混在コンテンツを無効にする:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_NEVER_ALLOW);
}
- HTTPS ページが安全でない HTTP リソースを読み込むのを防ぐ - インジェクションされたスクリプトを介した中間者攻撃(Man-in-the-middle)を防ぐ

ファイルアクセスを制限する:

webView.getSettings().setAllowFileAccess(false);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    webView.getSettings().setAllowFileAccessFromFileURLs(false);
    webView.getSettings().setAllowUniversalAccessFromFileURLs(false);
}
- file:// スキームの悪用をブロックする - ローカルファイルとデータベースの漏洩を防ぐ

JavaScript インターフェースを堅牢化する:

webView.removeJavascriptInterface("interfaceName"); // Remove if not needed
// If required, only expose minimal @JavascriptInterface methods
- addJavascriptInterface() を介したリモートコード実行を回避する - JS ブリッジが必要な場合は、WebMessagePort を使用するか、信頼できるオリジンを許可リストに登録する

追加の保護対策:

  • 本番環境での WebView デバッグを無効にする:

    WebView.setWebContentsDebuggingEnabled(false);
    
  • セーフブラウジングを有効にする(API 26+):

WebView.enableSafeBrowsing(context);

混在コンテンツを無効にし、ファイルアクセスを制限し、JavaScript ブリッジを安全にすることで、アプリの WebView 機能を安全に保ちながら、危険な WebView API に関連する主要な攻撃ベクトルを排除できます。

リンク

標準

  • 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