Trusted Types
Trusted Types とは何ですか?
Trusted TypesDOM ベースの XSS を防ぐためのブラウザ API と CSP ディレクティブ。危険な DOM シンクには生文字列ではなく、ポリシーで検証された型付き値しか渡せなくする。
Trusted Types は Google が設計し W3C で標準化された、DOM ベース XSS を根絶するための仕組みです。CSP の require-trusted-types-for と trusted-types を有効化すると、ブラウザは innerHTML、document.write、eval、script.src などのシンクに生の文字列を渡す呼び出しを拒否します。コードは名前付きで監査済みのポリシーを通じて TrustedHTML、TrustedScript、TrustedScriptURL などの型付きオブジェクトを生成する必要があります。これにより危険な DOM 書き込みは小さく監査可能な経路に集約され、レガシーな XSS シンクの大半を排除できます。Google、Bing、Shopify などの大規模サイトで広く運用されています。
● 例
- 01
Content-Security-Policy: require-trusted-types-for 'script'; trusted-types default;
- 02
element.innerHTML = userInput を element.innerHTML = policy.createHTML(userInput) に置き換える。
● よくある質問
Trusted Types とは何ですか?
DOM ベースの XSS を防ぐためのブラウザ API と CSP ディレクティブ。危険な DOM シンクには生文字列ではなく、ポリシーで検証された型付き値しか渡せなくする。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。
Trusted Types とはどういう意味ですか?
DOM ベースの XSS を防ぐためのブラウザ API と CSP ディレクティブ。危険な DOM シンクには生文字列ではなく、ポリシーで検証された型付き値しか渡せなくする。
Trusted Types はどのように機能しますか?
Trusted Types は Google が設計し W3C で標準化された、DOM ベース XSS を根絶するための仕組みです。CSP の require-trusted-types-for と trusted-types を有効化すると、ブラウザは innerHTML、document.write、eval、script.src などのシンクに生の文字列を渡す呼び出しを拒否します。コードは名前付きで監査済みのポリシーを通じて TrustedHTML、TrustedScript、TrustedScriptURL などの型付きオブジェクトを生成する必要があります。これにより危険な DOM 書き込みは小さく監査可能な経路に集約され、レガシーな XSS シンクの大半を排除できます。Google、Bing、Shopify などの大規模サイトで広く運用されています。
Trusted Types からどのように防御しますか?
Trusted Types に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
● 関連用語
- attacks№ 240
クロスサイトスクリプティング(XSS)
他のユーザーが閲覧するページに悪意あるスクリプトを注入し、当該サイトのオリジンとして被害者のブラウザで実行させる Web 脆弱性。
- appsec№ 214
コンテンツセキュリティポリシー (CSP)
スクリプト・スタイル・フレームなどの読み込み元をブラウザに指示する HTTP レスポンスヘッダで、XSS やデータ注入攻撃の影響を抑える。
- appsec№ 773
出力エンコーディング
信頼できないデータを HTML・JavaScript・URL・SQL・シェルなど特定の出力コンテキストで安全な形式に変換し、コードとして実行されるのを防ぐ処理。
- appsec№ 982
セキュアコーディング
防御的パターン・言語固有のルール・公認ガイドラインに従い、セキュリティ欠陥を最小化するようにソースコードを書く実践。
- appsec№ 538
入力検証
アプリケーションが処理する前に、信頼できないすべての入力が期待する型・長さ・範囲・形式・値集合に合致しているかをサーバー側で確認する処理。
- appsec№ 496
HTTP セキュリティヘッダ
HTTPS 強制・フレーム制限・コンテンツポリシー・リファラ制御などの防御動作をブラウザに指示するレスポンスヘッダ群。
● 関連項目
- № 516iframe の sandbox 属性