レッスン 1

HTML エンティティとは何か

文字参照と、HTML がエスケープを必要とする理由を理解します。

HTML エンティティ(より正確には 文字参照)は、リテラル文字の代わりにエスケープ列で文字を書く方法です。最も馴染みのある形式は & で始まり ; で終わり、&lt;<&copy; が © など。

HTML がエスケープを必要とする理由

HTML は <> でタグを区切ります。エスケープなしで生の <script> をページに挿入すると、ブラウザがマークアップとして解釈する可能性があります。エスケープは <&lt; にし、タグを開始せず文字を表示します。

同じ考えが次にも当てはまります。

  • アンパサンド&)— &copy; が誤って解析されないよう最初にエスケープ
  • 属性内の引用符 — 属性値内の "'
  • 特殊記号 — ©、ノンブレークスペース、コンテンツ内の数学記号

エンティティは暗号化ではない

エンコードは意味を隠しません。誰でも Tom &amp; JerryTom & Jerry にデコードできます。目的は HTML への安全な挿入 であり、機密性ではありません。

開発者がエンティティを見る場所

一般的な出所:

  • 保存やメールテンプレート向けに HTML をエスケープする CMS エクスポート
  • 出力を自動エスケープするサーバー側テンプレートエンジン
  • 事前エスケープされたスニペットを含む JSON やログフィールド
  • Word やリッチテキストエディタからのスマートクォートと記号付きコピペ

デコード vs レンダリング

エンティティ文字列をデコードすると テキスト が得られます。そのテキストを HTML 内でレンダリングするのは別ステップです。デコードだけで innerHTML に安全とは限りません。

実践したいときは関連する DevCove ツールを使えます。任意であり、このレッスンの必須部分ではありません。

関連ツールを開く

コース概要へ戻る