ストリング・エスケープ
JSON、HTML、XML、URL、その他のフォーマットの文字列内の特殊文字を、この多機能な文字列エスケープツールでエスケープまたはアンエスケープします。特殊文字をエンコードされた同等の文字に変換したり、デコードして戻したりすることで、さまざまなコンテキストでデータの整合性を確保できます。ウェブ開発者、API統合、データ処理タスクに最適です。
よくある質問
このツールは、JSON(引用符、改行、タブ)、HTMLエンティティ、XMLエンティティ、URLエンコーディング、JavaScript文字列エスケーピングを含む複数のエスケープ形式をサポートしており、さまざまなコンテキストに文字列を準備することができる。
引用符、バックスラッシュ、改行などの特殊文字をJSON値に含める必要がある場合、JSON用のエスケープ文字列を使用することで、有効なJSON構文を確保し、解析エラーを防ぐことができます。
はい、このツールは双方向に動作します。エンコードされた文字列をアンエスケープして元のテキストを見ることができるので、APIやデータベースからエスケープされたデータをデバッグしたり理解したりするのに便利です。
HTMLエスケーピングは、<、>、&、引用符などの文字をHTMLエンティティ(<、>、&、")に変換してXSS攻撃や表示の問題を防ぎ、JSONエスケーピングはJSON構文を破る文字を処理する。
URLエンコーディング(percent-encoding)は、URLで安全に使用できるように特殊文字を%XX形式に変換する特定のタイプのエスケープで、JSONやHTMLのエスケープとは異なります。
適切な文字列エスケープは、ユーザー入力が実行可能コードではなくデータとして扱われるようにすることで、インジェクション攻撃(XSS、SQLインジェクション)を防ぎます。
JSONのエスケーピングは、引用符(˶")、バックスラッシュ(˶)、制御文字(˶n, ˶t, ˶r)のバックスラッシュエスケープを要求する厳格な標準(RFC 8259)に従っています。JavaScriptの文字列エスケーピングは似ていますが、より寛容であり、追加的なエスケーピングとして⾊v(垂直タブ)、⾊0(ヌル)、⾊x(16進エスケープ)が可能です。また、JSONはBMP外の文字に対してUTF-16のサロゲートペアを必要としますが、JavaScriptはⅮu{XXXXXX}表記を使用できます。APIレスポンスとデータ交換には、常にJSONエスケープを使用し、厳密な互換性を確保してください。
各言語には固有のエスケープ要件があります:Pythonはバックスラッシュ( \n, ˶t, ˶')を使い、生の文字列(r'text')をサポートし、JavaScript は同様のエスケープとテンプレート・リテラルを使い、C/C++は引用符とバックスラッシュをエスケープする必要があり、SQLはシングルクォート(')を二重にするかエスケープする必要があり、シェルスクリプトは$、`、引用符を注意深くエスケープする必要があります。脆弱性を避けるためには、手動でエスケープするのではなく、常にその言語の組み込みのエスケープ関数(Pythonのjson.dumps()、JavaScriptのJSON.stringify()、SQLのパラメータ化されたクエリなど)を使ってください。
重要なエスケープシーケンスは以下の通り:\n(改行/行送り)、♪r(キャリッジリターン)、♪t(タブ)、♪" (ダブルクォート)、♪' (シングルクォート)、♪(バックスラッシュ)、♪0(ヌル文字)、♪b(バックスペース)、♪f(フォームフィード)。Unicodeの場合:\uXXXX(4桁の16進数)と(2桁の16進数)。JSONは♪/、HTMLは♪lt;と♪gt;、XMLはHTMLと同様、正規表現は♪d、♪w、♪sを文字クラスに使用します。
XSS攻撃は、ウェブページのエスケープされていないユーザー入力を悪用して悪意のあるスクリプトを注入します。適切なエスケープは、危険な文字を安全な表現に変換します:< は < に、 > は > に、 & は & に、 " は " に、 ' は ' になります。これは、ブラウザがユーザー入力をHTMLやJavaScriptのコードとして解釈するのを防ぎます。例えば、ユーザが<script>alert('XSS')</script>と入力した場合、HTMLエスケープはそれを無害なテキストに変換し、実行する代わりに文字通り表示します。ページのコンテンツはHTML、スクリプトブロックはJavaScript、リンクはURLというように、常にコンテキストに基づいて出力をエスケープしてください。
