エスケープ/アンエスケープ
JavaScript、HTML、CSVなど各種形式の文字列をエスケープ・アンエスケープします
エスケープ形式
形式を選択
テキストを入力
💡 エスケープの雑学・Tips
🔐 エスケープとは
エスケープとは、特殊な意味を持つ文字(<、>、" など)を、プログラムやマークアップ言語で正しく処理できる形式に変換することです。これにより、文字列として扱いたい特殊文字が、コードやコマンドとして誤解釈されるのを防ぎます。
🚨 XSS攻撃とHTMLエスケープ
Webアプリケーションでユーザー入力をHTMLとして出力する際、エスケープを忘れるとXSS(クロスサイトスクリプティング)攻撃の脆弱性になります。例えば、<script>alert('XSS')</script> という入力をそのまま出力すると、悪意あるスクリプトが実行されてしまいます。HTMLエスケープで <script> に変換すれば、ただのテキストとして表示されます。
💉 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)のような表記も可能です。テンプレートリテラル(`` ` ``)を使えば、多くのエスケープが不要になります。