HTML エスケープ/アンエスケープ
HTML エスケープ/アンエスケープは、HTML の特殊文字をエンティティに変換し、名前付き・10 進・16 進の文字参照をローカルでデコードします。タグ表示やコード例に使えます。
入力テキスト
文字
0 / 50,000
クイックスタート
よくある利用シーン
ユーザーコメント
信頼できないテキストを HTML コンテンツ領域に表示する前にエスケープします。
ブログ記事
HTML タグやコード片を記事内に表示します。
フォーラム投稿
貼り付けられたタグをマークアップとして描画せず、ユーザーテキストとして表示します。
チャットメッセージ
HTML コンテンツ領域へ入る前に、貼り付けられたマークアップを表示用テキストにします。
フォームデータ
送信テキストを表示する前に、エスケープ後の値を確認してコピーします。
コード表示
Web ページで HTML や JavaScript のスニペットを見せます。
エスケープ規則とエンティティ
エスケープとサニタイズの境界
使い方のヒント
制限と互換性
プライバシーとセキュリティ
よくある質問
XSS(クロスサイトスクリプティング)は、信頼できない内容がページ内で script やマークアップとして解釈されると起きます。HTML エスケープは HTML コンテンツ文脈では役立ちますが、XSS 対策の一部にすぎません。
信頼できないテキストを HTML コンテンツまたは属性コンテキストへ入れるときに使います。プレーンテキストには textContent やフレームワーク既定のエスケープを優先し、JavaScript、CSS、URL、JSON には別の処理を使ってください。
どちらも < を表します。< は名前付きエンティティ、< と < は 10 進/16 進の文字参照です。現代の HTML では通常同じように動作します。末尾のセミコロンを残し、後続の文字と結合して誤解析されないようにしてください。
いいえ。HTML エスケープが効くのは HTML エンティティの文脈だけです。JavaScript 文字列、CSS、URL、JSON、リッチ HTML には別の処理が必要です。
内容が 2 回エスケープされると起きます。最初に < が < になり、次に < の & が & へ変わるため、&lt; と表示されます。すでにエスケープ済みのテキストへ再度エスケープをかけないでください。
このエスケープツールではなく、サニタイズを使います。サニタイザーは許可リストでタグや属性を残し、プロトコルをフィルタし、イベントや style を削除できます。DOMPurify や sanitize-html を使い、可能ならサーバー側でサニタイズし、プレーンテキストには textContent を使ってください。