// HTMLをエスケープ
HTML Entities Encoder / Decoder
安全でないHTML文字をエンティティにエンコードし、エンティティを文字にデコード。
Text
Escaped
HTML Entities Encoder / Decoder 例.
// エンティティをアンエスケープ
よくある質問.
なぜHTMLをエスケープするのですか?
XSS攻撃を防ぎ、コンテンツが正しく表示されるようにするためです。
HTMLエスケープが重要な理由
HTMLエスケープは、ユーザー入力や動的コンテンツをHTMLとして安全に表示するために必須です。特殊文字<&>`'はHTMLの構文として解釈されるため、エスケープしないと意図しない表示やセキュリティ問題が発生します。
特にアスタリスク(&)は、HTMLエンティティの開始文字です。エスケープしないと、ブラウザがテキストをHTMLタグやエンティティとして解釈し、予期しない結果を招きます。
XSS(クロスサイトスクリプティング)攻撃を防ぐため、ユーザーから受け取ったデータは必ずエスケープしてからHTMLに埋め込むことが重要です。
XSS保護とエスケープ
XSS攻撃とは、悪意のあるスクリプトをWebページに注入する攻撃です。HTMLエスケープは、スクリプトが実行されないよう文字列として表示する基本的な対策です。
HTMLエスケープは、<&>`'を対応するHTMLエンティティに変換します。<は<、>は>、&は&、'は"、'は'に変換されます。
HTMLエスケープはXSS対策の一部です。JavaScriptの実行や属性の注入など、より高度な攻撃にはサニタイズ機能やCSP(Content Security Policy)も併用が必要です。
名前付きエンティティと数値エンティティ
名前付きエンティティは、覚えやすい名前で表現されます。例:&(&)、<(<)、>(>)。可読性が高く、マークアップ作業に便利です。
数値エンティティは、文字のUnicodeコードポイントで表現されます。例:<(<)、>(>)。名前が存在しない文字や、特殊なUnicode文字を表現する際に使用します。
どちらも同じ結果を生み出しますが、可読性や互換性の観点から適切なものを選択してください。一般的には名前付きエンティティが推奨されます。