Trusted Types
は、危険な挿入ポイント(.innerHTML
など)が検証されていない文字列値を使用するのをブロックすることで、特定の DOM ベースの XSS 攻撃を防ぐのに役立つウェブ プラットフォームのセキュリティ機能です。リスクの高いインジェクション ポイントがブロックされると、違反が発生します。
Content-Security-Policy
(CSP)ヘッダーは、require-trusted-types-for
ディレクティブを使用して Trusted Types を適用します。
Lighthouse 監査が失敗する仕組み

CSP ヘッダーが require-trusted-types-for
ディレクティブとスクリプトを値として設定されている場合、監査は合格します。CSP ヘッダーが設定されていない場合、または設定されていても Trusted Types ディレクティブがない場合、監査は失敗します。
DOM ベースの XSS を軽減するために CSP ヘッダーと Trusted Types ディレクティブを構成する
ユーザー エージェントは require-trusted-types-for
ディレクティブを使用して、DOM XSS シンク関数に渡されるデータを制御します。このディレクティブの script
値は、DOM XSS インジェクション シンク関数が文字列を許可するのではなく、Trusted Type ポリシーによって生成された型のみを受け入れることを検証します。
Content-Security-Policy: require-trusted-types-for 'script';