Trusted Types
innerHTML にただの文字列を渡すことを型エラーにし、DOMベースXSSを構造的に取り除く仕組み。
DOM XSSの厄介な点は、危険な呼び出しが文字列を受け取り、その文字列がどこから来たかは分からないことだ。Trusted Typesはこれを逆転させる。保護を有効にすると、ブラウザは innerHTML、script.src、eval といったシンクで、ただの文字列を解釈しなくなる。受け付けるのは特別なオブジェクトだけで、それは開発者が登録したポリシーからしか作れない。
利点は、レビューの範囲が有限になることだ。信頼できないデータがシンクに届きうる箇所を全部探す代わりに、数が少なく一箇所にまとまったポリシーだけを監査すればよい。有効化にはCSPディレクティブ require-trusted-types-for 'script' を使い、強制の前に違反を洗い出せるレポート専用モードもある。