信頼されない制御圏からの機能の包含

説明

JavaScript や CSS のソースファイルが、サードパーティドメインからサブリソースのインテグリティ(SRI)なしでインクルードされています。攻撃者がこれらのサードパーティリソースをホストするサイトを侵害した場合、悪意のあるスクリプトや CSS データを注入し、アプリケーションのユーザを侵害しようとする可能性があります。しかし、SRI が適用され、攻撃者がスクリプトの内容を変更しようとした場合、ブラウザはスクリプトを読み込まず、あなたのアプリケー ションのユーザは悪意のある変更から保護されます。

対処法

すべての識別されたリソースは、ターゲット・アプリケーションと同じドメインからソースされるべきです。これが不可能な場合、src 値を実装するすべてのscript タグ、またはhref 値を実装するlink タグに Sub-Resource Integrity を含めることを強く推奨します。SRIインテグリティ値を生成するには、SRIハッシュツールを使用するか、以下のコマンドのいずれかを実行します:

  • cat FILENAME.js | openssl dgst -sha384 -binary | openssl base64 -A
  • shasum -b -a 384 FILENAME.js | awk '{ print $1 }' | xxd -r -p | base64

これらのツールの出力は、追加属性として追加する必要があります。特に、integritycrossorigin=anonymous またはcrossorigin=use-credentials のいずれかです。有効なSRI保護スクリプトタグの例を以下に示します:

<script src="https://example.com/example-framework.js"
    integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
    crossorigin="anonymous"></script>

詳細

ID集計CWE種類リスク
829.1true829受動的