parseHtmlUnsafeでHTMLをDocumentに変換する
公開: 2025年10月11日(土)
更新: 2025年10月11日(土)
TrustedHTMLまたはHTML文字列をDocumentオブジェクトに変換するparseHtmlUnsafe()関数がBaseline 2025に追加されました。
名前にUnsafeとついている通り、このメソッドはXSSの危険性がある要素を自動的には削除しません。
安全性を重視したparseHTML()メソッドも存在しますが、こちらは多くのブラウザでまだ実装されていないため、現時点ではparseHTMLUnsafe()が主に使用されています。
Unsafeな状況を軽減するため、いくつかの対策が用意されています。
変換元の値としてTrustedHTMLを使用する方法や、第2引数のオプションでsanitizerを指定する方法などです。ただし、TrustedHTMLは本記事執筆時点ではFirefoxでサポートされておらず、sanitizerオプションも多くのブラウザで未対応という状況です。
この機能はDeclarative Shadow DOMを扱う際に特に有効です。
似た機能を持つDOMParser.parseFromString()プロパティを使ってDeclarative Shadow DOMを用いたWeb Componentsを含むHTMLレスポンスを解析しても、parseFromStringはDeclarative Shadow DOMを解析できません。
一方、parseHTMLUnsafe()はDeclarative Shadow DOMも解析できるため、これらのコンポーネントを正しく解析することが可能です。