HTMLツール

無料 HTMLサニタイザー設定ビルダー

安全なHTMLレンダリングのためのSanitizer APIおよびDOMPurifyの許可リスト設定を生成します。

ツールを読み込み中...

HTMLサニタイザー設定ビルダーとは

HTMLサニタイザーはユーザーが送信した文字列から危険なHTMLタグ、属性、コンテンツを削除してからページ上でレンダリングします。これにより攻撃者がコメントフィールド、リッチテキストエディター、またはユーザー入力領域を通じて悪意のあるスクリプトを注入するXSS(クロスサイトスクリプティング)攻撃を防ぎます。ブラウザのSanitizer APIはネイティブのサニタイズを提供しDOMPurifyは同じ目的で最も広く使用されているJavaScriptライブラリです。

クイックアンサー

ユーザー送信HTMLをレンダリングする際のXSSを防ぐためにHTMLサニタイザーの許可リストを構築します。コンテンツタイプのプリセット(コメント、ブログ、リッチテキスト)を使用するか許可するタグと属性をカスタマイズします。ネイティブのSanitizer API、DOMPurify、または両方の設定を出力します。常にscriptタグ、イベントハンドラー、javascript: URLをブロックします。

Last updated: 2026-05-28

制限事項

  • 完璧なサニタイザーはありません。新しい攻撃ベクトルが定期的に発見されています。DOMPurifyまたはサニタイズ戦略を最新の状態に保ちセキュリティアドバイザリを購読してください。
  • ネイティブのSanitizer APIは2025年現在Safariではサポートされていません。クロスブラウザサポートにはDOMPurifyを使用するかフォールバック戦略を実装してください。
  • サニタイズはXSSを防ぎますがフィッシング、コンテンツスプーフィング、レイアウト崩れは防ぎません。ユーザー送信コンテンツには追加の検証とコンテンツモデレーションが必要になる場合があります。

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

使い方

  1. ユーザーが送信すると予想されるHTMLの種類に基づいてコンテンツタイプのプリセットを選択します。
  2. 特定のユースケースに合わせて許可するタグと属性を確認しカスタマイズします。
  3. 出力形式を選択します:Sanitizer API、DOMPurify、または両方。
  4. 設定をコピーしてユーザー送信HTMLをレンダリングする場所で使用します。

主な用途

  • 基本的な書式設定(太字、斜体、リンク)を許可するがスクリプトや複雑なマークアップをブロックするブログコメントセクション用のHTMLサニタイザーを設定します。
  • 編集者が見出し、リスト、テーブル、画像を使用できるがスクリプトやiframeを埋め込めないリッチテキストCMS用のサニタイザー設定を構築します。
  • ユーザー投稿のMarkdownをHTMLに変換してレンダリングする静的サイト用のDOMPurify設定をセットアップします。

用途

使用例

ブログコメントのサニタイズ

ブログで基本的な書式設定を含むコメントを許可します。b、i、a、code、em、strong、brタグを許可するコメントプリセットを使用します。スクリプト、画像、複雑なマークアップは除去されます。これによりXSSを防ぎつつコメントを読みやすく保ちます。

CMSリッチテキスト編集

ヘッドレスCMSで見出し、リスト、引用、画像、テーブルを含むリッチテキストを許可します。ブログまたはリッチテキストプリセットを使用して構造的なHTMLを許可しながらscript、iframe、object、embedタグをブロックします。

よくあるミス

  • 許可リストにscriptやstyleタグを含めると任意のコードを実行できサニタイズの目的を無効にします。
  • onclickやonerrorなどのイベントハンドラー属性を許可するとscriptタグがブロックされていても攻撃者はイベントハンドラーを通じてJavaScriptを注入できます。
  • サニタイズされたHTMLがあらゆるコンテキストで安全であると想定するのは誤りです。サニタイズされたHTMLでもレイアウトが崩れたりコンテナをオーバーフローしたりフィッシングリンクが含まれる可能性があります。

検証

  1. 既知のXSSペイロード(<img src=x onerror=alert(1)>など)でサニタイザー設定をテストしそれらが除去されることを確認します。
  2. ブラウザのDevToolsを使用してレンダリングされたHTMLを検査し予期しないタグや属性がサニタイズを生き残っていないことを確認します。

FAQ

HTMLサニタイザー設定ビルダーのFAQ

ネイティブのSanitizer APIとDOMPurifyのどちらを使用すべきですか?

Sanitizer APIはブラウザに組み込まれており外部ライブラリを必要としませんが比較的新しくSafariではサポートされていません(2025年現在)。DOMPurifyは十分にテストされた広く使用されているライブラリですべてのブラウザで機能します。本番サイトでは広範な互換性のためにDOMPurifyを使用するかDOMPurifyフォールバック付きのプログレッシブエンハンスメントとしてSanitizer APIを使用してください。

常にブロックすべきタグと属性は?

常にscript、style、iframe、object、embed、applet、form、input、buttonタグをブロックします。常にイベントハンドラー属性(onclick、onerror、onload、onmouseoverなど)、href/src属性のjavascript: URL、およびHTMLやJavaScriptを含む可能性のあるdata: URLをブロックします。

関連ツール

その他のhtmlツール

こちらもお試しください

こちらもお試しください