貼り付けたテキスト内の HTML エンティティを読み取る
&、<、' などを本来の文字に戻します。デコードすべきでないケースも押さえておきましょう。
- 1 HTML エンティティデコーダー →
エンティティを含むテキスト(& < > " ' ' および数値形式)を貼り付けます。出力では各エンティティが実際の文字(非 ASCII コードポイントを含む)に置き換えられます。
- 2
エンティティの基礎知識:名前付きエンティティは XML/HTML の特殊文字に加え、大きなカタログ(© — )をカバーします。数値形式には 10 進(')と 16 進(')があり、常に Unicode コードポイントにマッピングされます。出力のテキストがあるべき場所に余分な文字が表示される場合、ソースは二重にエンコードされています。&lt; は 1 回目のデコードで < になります。意図したデータを確認してから再実行してください。
- 3
デコードすべきでない場合:HTML 出力に向けたテキストはエンコードされたままにしてください。ユーザー提供のコンテンツをデコードしてエスケープせずにレンダリングするのが、古典的な XSS インジェクション経路です。読解と分析のためにデコードし、保存と表示のためにエンコードを維持してください。
よくある質問
- ' と ' の違いは?
- どちらもアポストロフィを表します。' は XML と HTML5 で有効ですが、HTML 4 には存在しませんでした。'(数値形式)はどこでも動くため、多くのエンコーダが数値形式を出力します。
- なぜ < の代わりに &lt; が含まれるのですか?
- 二重エンコーディングです。文字列が 2 回 HTML エスケープされています(テンプレートがすでにエスケープ済みのデータをエスケープする場合に多い)。2 回デコードして元に戻し、ソース側のエスケープを修正してください。