HTMLエンティティ変換
HTMLの特殊文字を安全にエスケープ・アンエスケープ。クォーテーションの処理設定付き。
📖エスケープ処理の重要性とXSS対策について見る
HTMLエスケープ(エンティティ化)とは?
HTMLにおいて特別な意味を持つ記号(メタ文字)を、ブラウザが単なる「文字列」として解釈できるように、安全な文字列(エンティティ)に置き換える処理のことです。Webアプリケーションにおいて、ユーザーからの入力値を画面に表示する際などに必須となる処理です。
なぜエスケープが必要なのか?(XSS対策)
エスケープ処理を怠ると、「XSS(クロスサイトスクリプティング)」という重大な脆弱性に繋がります。
悪意のあるユーザーが入力フォームに <script>alert('攻撃')</script> のようなコードを入力し、それをそのまま画面に出力してしまった場合、ブラウザはそれを「実行可能なJavaScript」として解釈してしまいます。これにより、セッションハイジャック(Cookieの盗難)や、偽サイトへの誘導、不正な操作の強制などの被害が発生する可能性があります。
変換される主要な特殊文字一覧
Webセキュリティのベストプラクティスにおいて、必ずエスケープすべきとされる「5つの特別な文字」です。
- •
&(アンパサンド) → & : HTMLエンティティの開始文字として使われるため、最初に変換する必要があります。 - •
<(小なり) → < : HTMLタグの開始を防ぎます。 - •
>(大なり) → > : HTMLタグの終了を防ぎます。 - •
"(ダブルクォート) → " : HTMLタグの属性値(hrefやvalueなど)から文字列がはみ出すのを防ぎます。 - •
'(シングルクォート) → ' : ダブルクォート同様、属性値からのエスケープに使用します。(※ ' は古いIEなどでサポートされていなかった歴史的背景から、数値文字参照の ' が推奨されます)
入力 (HTML)
エスケープオプション
出力 (エンティティ文字列)
セキュリティについて
入力されたデータはすべてブラウザ内で処理され、外部サーバーに送信されることはありません。安心してご利用ください。