無料HTMLエスケープ・アンエスケープツール - エンティティエンコーダ
334 回使用HTMLエンティティ参照表
| 文字 | エンティティ名 | エンティティ番号 | 説明 |
|---|---|---|---|
| < | < | < | 小なり、タグ開始 |
| > | > | > | 大なり、タグ終了 |
| & | & | & | アンパサンド、エンティティ開始 |
| " | " | " | 二重引用符、属性区切り |
| ' | ' | ' | 一重引用符、属性区切り |
|   | ノーブレークスペース | |
| © | © | © | 著作権記号 |
| ® | ® | ® | 登録商標記号 |
HTMLエスケープガイド
HTMLエスケープとは?
HTMLエスケープは< > &などの特殊文字をエンティティコードに変換し、ブラウザがHTMLマークアップとして解釈するのを防ぎます。
XSS対策
ユーザー入力のエスケープは、クロスサイトスクリプティング(XSS)攻撃を防ぐために不可欠です。
コード表示
Webページ上でHTMLソースコードを表示する際、タグをエスケープしてテキストとして表示する必要があります。
データ安全性
ユーザー生成コンテンツをHTMLで表示する前にエスケープします。ReactやVueなどのモダンフレームワークは自動で行います。
エンティティ形式
HTMLエンティティには名前形式(<)と数値形式(<)があります。両方とも同じ結果を生成します。
必須エスケープ文字
HTMLで必ずエスケープすべき5文字: < > & " ' — HTML構文で特別な意味を持ちます。
よくある質問
データベースのコンテンツが `&` や `<` のようなHTMLエンティティで表示されますが、ウェブサイトで表示するためにこれらをどのようにデコードすればよいですか?
データベースから取得したコンテンツが実際の文字ではなくHTMLエンティティで表示される場合、テキストが保存前にHTMLエスケープされたことを意味します。ウェブページでこれを正しくレンダリングするには、HTMLアンエスケープツールを使用する必要があります。これにより、`&` のようなエンティティが `&` に、`<` が `<` に変換され、特殊文字と元の書式設定が、生のエンティティコードとしてではなく、意図したとおりに表示されるようになります。
スプレッドシートやテキストファイルからのHTML文字列リストを素早くエスケープまたはアンエスケープするにはどうすればよいですか?
当社のオンラインHTMLエスケープツールは、一括処理に最適です。スプレッドシートの列全体、または文字列のリストを入力エリアにコピー&ペーストするだけです。ツールは即座にすべての特殊文字をHTMLエンティティに変換(エスケープ)したり、元に戻したり(アンエスケープ)します。これにより、スプレッドシート、CSV、テキストファイルからのウェブ表示用データを準備する際、XSS防止や正しいレンダリングを確実にし、大幅な時間節約になります。
HTMLで著作権記号や商標文字をエンティティを使用して安全に表示するにはどうすればよいですか?
著作権 `©`、商標 `™`、登録商標 `®` の記号がブラウザやエンコーディング間で正しく一貫して表示されるようにするには、HTMLエンティティを使用する必要があります。当社のHTMLエスケープツールは、これらの実際の記号を対応するエンティティ(例:`©`、`™`、`®`)に変換できます。これにより、表示の問題を防ぎ、知的財産マークがウェブページ上で常に意図したとおりに表示されるようにします。
HTMLエスケープはすべてのXSS攻撃を防げますか?
それだけでは不十分です。エスケープは出力コンテキストを処理しますが、XSSはJavaScript実行、CSSインジェクション、属性ベースの攻撃でも発生します。適切なContent Security Policyヘッダーと入力検証も必要です。エスケープは一つの層であり、万能薬ではありません。インラインスクリプトをブロックするCSPと組み合わせてください。
山括弧だけをエスケープして、他の文字はそのままにする方法はありますか?
このツールでは選択的なエスケープはできません。それには理由があります。部分的にエスケープすると攻撃の隙が生まれます。たとえば < と > だけをエスケープして & を残した場合、ユーザーが <script> と入力すると、データベースで二重エンコードされてタグとして表示される恐れがあります。一度フルエスケープしてから出力を信頼しましょう。変なエッジケースを避けられます。
すでにエスケープ済みのHTMLをエスケープ欄に貼り付けるとどうなりますか?
ツールはさらにエスケープ処理を行い、`&`が`&amp;`に変わります。通常、これは望ましい結果ではありません。入力が生のHTML文字であり、エンティティではないことを必ず確認してください。不安な場合は少量だけ貼り付けて出力を確認しましょう。CMSからコピーしたテキストでこのミスは頻発します。
JavaScriptの<code>innerHTML</code>でテキストを挿入すると、なぜ生のHTMLタグが表示されるのですか?
<code>innerHTML</code>に生の<code><</code>や<code>></code>を渡すと、ブラウザがそれをマークアップとして解釈します。先にHTMLエスケープを実行しましょう。<code><</code>は<code><</code>、<code>></code>は<code>></code>に変換されます。そのエスケープ済みの文字列を<code>innerHTML</code>に代入すれば、タグがそのまま表示されます。この手順を飛ばすと、レイアウト崩れやXSSの原因になります。
<textarea>要素内でHTMLエスケープは必要ですか?
はい、必要です。多くの人がtextareaはテキスト表示が異なるため安全だと思い込んでいます。しかしブラウザは内部のHTMLも解析します。生の<や>を入れるとページが壊れたり、XSSの脆弱性が生まれます。ユーザーコンテンツを注入する前に必ずエスケープしてください。当ツールなら<を<、>を>に数千行でも一瞬で変換できます。
ユーザー入力をデータベースに保存するとき、HTMLエスケープは保存前と保存後のどちらで行うべきですか?
生データを保存し、描画時にエスケープするのが鉄則です。保存前にエスケープすると、編集時にデコードし、表示時にまたエスケープする必要があり、バグが入り込む箇所が3つに増えます。データベースはクリーンなまま保ち、ブラウザに送る直前にこのツールで処理してください。&が&amp;になるような二重エンコードの悲劇を避けられます。ただし静的サイトを構築しているなら、ビルド時にエスケープしても問題ありません。
HTMLエスケープとURLエンコードの違いは何ですか?
まったく別の問題を解決します。HTMLエスケープは<や>をエンティティ(<、>)に変換し、ブラウザがマークアップではなくテキストとして描画するようにします。URLエンコードはクエリ文字列やパスで安全に運ぶため、文字をパーセントエンコード(%3C、%3E)に変えます。これらを混同すると、微妙なバグが発生します。ユーザー入力でリンクを作る場合はURLエンコード、同じ入力をページに表示する場合はHTMLエスケープを使いましょう。別々の手順、別々のツールです——このツールはHTMLだけを扱います。確認のコツ:URLに&の代わりに%26が見えたら、それはエスケープではなくエンコードです。それぞれの層で正しい方を選べば、二重エンコードの混乱を避けられます。
使い方
- 入力欄にHTMLまたはテキストを入力
- エスケープをクリックして特殊文字をエンティティに変換
- アンエスケープをクリックしてエンティティを文字に戻す
- HTMLプレビューでブラウザでのレンダリング結果を確認
- すべての処理はブラウザ内でローカルに実行されます