信頼されない制御圏からの機能の包含
説明
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
これらのツールの出力は、追加属性として追加する必要があります。特に、integrity
、crossorigin=anonymous
またはcrossorigin=use-credentials
のいずれかです。有効なSRI保護スクリプトタグの例を以下に示します:
<script src="https://example.com/example-framework.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
crossorigin="anonymous"></script>
詳細
ID | 集計 | CWE | 種類 | リスク |
---|---|---|---|---|
829.1 | true | 829 | 受動的 | 低 |