DEV

HTMLエンティティエンコーダ — 特殊文字を正しくHTMLに

HTMLエンティティは予約文字のHTMLコードです。例えば<は&lt;。正しくエンコードしないとユーザー入力がHTMLマークアップとして解釈され——XSSの脆弱性になります。

よく使うHTMLエンティティ

&amp;は&。&lt;は<。&gt;は>。&quot;は"。&apos;は'。&nbsp;はノーブレークスペース。&copy;は©。5つの予約文字を覚えれば、残りは調べられます。

XSS対策としてのエンティティエンコード

クロスサイトスクリプティングはユーザー入力を通じて悪意のあるスクリプトを注入します。HTML配置前にすべてのユーザー入力をエンコードすることで攻撃を無害化できます。ReactとAngularはテンプレート式で自動的に処理します。

Named vs. Numeric エンティティ

Named(&copy;)は可読性が高い。Numeric(&#169;十進または&#xA9;十六進)はすべてのUnicode文字に使用可能。可読性のために名前付きエンティティを優先してください。