ファイル ダウンロードによる XSS の脆弱性の修正

この記事は、ファイル ダウンロードによるクロス サイト スクリプティングの脆弱性があるアプリのデベロッパーを対象としています。

状況

ファイル ダウンロードによるクロスサイト スクリプティングの脆弱性があるアプリが 1 つ以上存在します。この脆弱性は修正が必要です。詳しくは Play Console の通知をご覧ください。Play Console に表示されている期限を過ぎた後もセキュリティの脆弱性が修正されていないアプリは、Google Play から削除される場合があります。

必要な対応

  1. Play Console にログインし、[アラート] セクションで該当するアプリや問題の修正期限を確認します。
  2. 該当するアプリを更新し、脆弱性を修正します。
  3. 該当するアプリの更新バージョンを送信します。

再送信すると、アプリは再度審査されます。審査には数時間ほどかかることがあります。アプリが審査に合格して正常に公開された場合は、これ以上の対応は不要です。アプリが審査に不合格となった場合、アプリの更新バージョンは公開されず、メールで通知が届きます。

その他の詳細

setAllowFileAccessFromFileURLs または setAllowUniversalAccessFromFileURLs が true に設定された WebSettings を含む WebView が、信頼できないウェブ コンテンツを一切読み込まないようにしてください。これには HTTP 経由で読み込まれる信頼できるドメインからのコンテンツも含まれます。悪質なウェブ コンテンツやネットワークが、非公開のローカル ファイルや Cookie にアクセスするためにスクリプトを挿入し、WebView を悪質なローカル ファイルにリダイレクトしてクロスサイト スクリプティング攻撃を開始することがあります。

以下のいずれかの方法でこの脆弱性への対応策を講じてください。

  1. WebView に危険な設定をしない
  2. WebView がローカル ファイルを読み込んだり、JavaScript を実行したりできないようにする
  3. 危険な設定を含む WebView が信頼できないウェブ コンテンツを読み込まないようにする

1. WebView に危険な設定をしない

マニフェストandroid:targetSdkVersion を 16 以上に更新して、WebView で安全なデフォルト設定を使用します。または、setAllowFileAccessFromFileURLs(false)setAllowUniversalAccessFromFileURLs(false) を呼び出して、それぞれの WebView が安全であることを確認します。

2. WebView がローカル ファイルを読み込んだり、JavaScript を実行したりできないようにする

setAllowFileAccess(false) を呼び出して危険な設定を含む WebView がローカル ファイルを読み込むのを防止するか、setJavaScriptEnabled(false) を呼び出して危険な設定を含む WebView が JavaScript コードを実行するのを防止します。

3. 危険な設定を含む WebView が信頼できないウェブ コンテンツを読み込まないようにする

上記のような危険な設定を WebView で有効にする必要がある場合は、信頼できないウェブ コンテンツを読み込まないよう注意します。これには HTTP 経由で読み込まれるコンテンツも含まれます。android:usesCleartextTraffic=false を設定するか、マニフェストで HTTP トラフィックを禁止するネットワーク セキュリティ構成を設定してください。または、危険な設定を含む WebView が HTTP スキームの URL を読み込まないようにしてください。

また、危険な設定を含む WebView が信頼できないソースから取得した URL も読み込まないようにしてください。

サポートのご案内

脆弱性に関する技術的なご質問については、Stack Overflow にご投稿ください。その際、「android-security」タグをご利用ください。この問題を解決するための手順で不明な点がありましたら、デベロッパー サポートチームにお問い合わせください。

この情報は役に立ちましたか?
改善できる点がありましたらお聞かせください。