HTMLエスケープ・アンエスケープ
HTMLの特殊文字(< > & " ')を文字参照に変換したり、元に戻したりします。コードをHTMLに表示するときに。
HTMLエスケープ・アンエスケープについて
HTMLでは、「<」「>」「&」などが特別な意味を持つため、これらの文字をそのまま表示したい場合は、「<」「>」「&」のような文字参照に変換(エスケープ)する必要があります。このツールで、エスケープとその逆の変換ができます。
ブログやドキュメントに、HTMLのコードをそのまま表示したいときや、ユーザーの入力を安全に表示したいときに便利です。エスケープを怠ると、意図しない表示崩れや、セキュリティ上の問題(クロスサイトスクリプティング)の原因になります。
こんなときに使えます
- HTMLのコードを、ブログ記事にそのまま掲載する
- 文字参照(< など)を、元の文字に戻す
- ユーザー入力を表示する前の、エスケープの確認
使うときのポイント
- プログラムで出力するときは、ライブラリのエスケープ機能を使う
- 引用符("と')のエスケープも、属性値では重要
計算例
入力欄の初期値のまま計算すると、次の結果になります。条件は、処理がエスケープ(< → <)、入力が<a href="x">Tom & Jerry's</a>です。数値を変えると、この結果もそれに合わせて変わります。
結果: <a href="x">Tom & Jerry's</a>
使い方
- 処理を選びます。
- テキストを入力すると、変換結果が表示されます。
計算方法・仕組み
& → &、< → <、> → >、" → "、' → ' のように変換します。
知っておきたい基礎知識
HTMLでは、<や>、&などの記号が、タグや特殊な文字の始まりを表すため、そのまま表示したい場合は、文字参照(<・>・&など)に置き換える必要があります。この処理をHTMLエスケープといいます。コードの例をWebページに表示するときには、必ず、エスケープしなければなりません。
エスケープは、セキュリティの面でも重要です。利用者が入力した文字列をそのままHTMLに出力すると、悪意のあるスクリプトが実行される、クロスサイトスクリプティング(XSS)という脆弱性の原因になります。表示するデータは、エスケープしてから出力するのが、基本です。
間違えやすいポイント
- エスケープは、出力する場所(HTML本文・属性・JavaScript内)によって、必要な処理が異なる
- 二重にエスケープすると、「&lt;」のように、表示が崩れる
- エスケープ済みの文字列をさらに処理するときは、元に戻してから扱う
よくある質問
- どの文字がエスケープの対象ですか?
- &、<、>、二重引用符(")、単一引用符(')の5つが、基本です。
- アンエスケープは、何のために使いますか?
- エスケープされた文字列を元の文字に戻して、内容を読んだり、編集したりしたいときに使います。