エンコーダー

エスケープ/アンエスケープ

JavaScript、HTML、CSVなど各種形式の文字列をエスケープ・アンエスケープします

エスケープ形式

形式を選択

テキストを入力

💡 エスケープの雑学・Tips
🔐 エスケープとは

エスケープとは、特殊な意味を持つ文字(<>" など)を、プログラムやマークアップ言語で正しく処理できる形式に変換することです。これにより、文字列として扱いたい特殊文字が、コードやコマンドとして誤解釈されるのを防ぎます。

🚨 XSS攻撃とHTMLエスケープ

Webアプリケーションでユーザー入力をHTMLとして出力する際、エスケープを忘れるとXSS(クロスサイトスクリプティング)攻撃の脆弱性になります。例えば、<script>alert('XSS')</script> という入力をそのまま出力すると、悪意あるスクリプトが実行されてしまいます。HTMLエスケープで &lt;script&gt; に変換すれば、ただのテキストとして表示されます。

💉 SQLインジェクションとエスケープ

SQLクエリにユーザー入力を直接埋め込むと、SQLインジェクション攻撃のリスクがあります。例えば、SELECT * FROM users WHERE name = 'admin' OR '1'='1' のような入力で、すべてのデータが漏洩する可能性があります。プリペアドステートメント(パラメータ化クエリ)を使うか、シングルクォートを '' にエスケープすることで防げます。

📄 CSVのエスケープルール

CSVでは、カンマ、改行、ダブルクォートを含むフィールドは " で囲み、フィールド内の """ にエスケープします。例えば、He said, "Hello""He said, ""Hello""" になります。ExcelやGoogleスプレッドシートは自動でエスケープしますが、プログラムで生成する際は明示的な処理が必要です。

🔤 JavaScriptのエスケープシーケンス

JavaScriptには様々なエスケープシーケンスがあります。\n(改行)、\t(タブ)、\\(バックスラッシュ)、\"(ダブルクォート)、\'(シングルクォート)。さらに、\u0041(Unicode A)や \x41(16進数 A)のような表記も可能です。テンプレートリテラル(`` ` ``)を使えば、多くのエスケープが不要になります。