HTMLエンティティとは
HTMLエンティティは、HTMLの構文として特別な意味を持つ文字や、キーボードで入力しにくい文字を表現するための記法です。&名前;または&#数値;の形式で記述します。
必須のエスケープ文字
<:<(HTMLタグの開始と混同されるため必須)>:>(HTMLタグの終了)&:&(エンティティ記号自体)":"(属性値内のダブルクォート)':'(属性値内のシングルクォート)
よく使う特殊文字
:ノーブレークスペース(改行されないスペース)©:© 著作権マーク®:® 登録商標マーク™:™ 商標マーク—:— 全角ダッシュ…:… 省略記号
XSS対策としてのエスケープ
ユーザーが入力したテキストをHTMLに埋め込む場合、エスケープ処理を怠るとXSS(クロスサイトスクリプティング)攻撃を受けます。攻撃者が<script>悪意のあるコード</script>を入力すると、他のユーザーのブラウザで実行されてしまいます。
ReactやVueなどのモダンフレームワークはデフォルトでエスケープ処理を行いますが、dangerouslySetInnerHTMLやv-htmlを使う場合は特に注意が必要です。