無料SQLエスケープツール オンライン
SQL文字列のシングルクォートを安全にエスケープ — 無料、ブラウザのみ。
入力
出力
SQLエスケープとは?
O'Brienのような名前を持つユーザーの入力でSQLクエリが壊れた経験はありませんか?そのアポストロフィが問題の原因です。エスケープなしでは、SQLインジェクション攻撃の入り口になります(OWASP Top 10に記載された主要な脆弱性の一つ)。SQLエスケープは特殊文字を変換し、文字列をSQL クエリに安全に埋め込めるようにするプロセスです。パラメータ化クエリ(プリペアドステートメント)が推奨されますが、レガシーシステムや動的SQLでは手動エスケープが必要な場面もあります。参考: PostgreSQL文字列ドキュメントおよびMySQLリテラルガイド。
SQLで最も一般的なエスケープはシングルクォートの重複です:'が''になります。
SQLエスケープツールの使い方
SQL文字列を貼り付ける
エスケープしたいSQL文字列を左の入力エディタに貼り付けてください。
モードを選択
エスケープまたはアンエスケープを選択してください。
コピーまたはダウンロード
結果をクリップボードにコピーするか、.sqlファイルとしてダウンロードできます。
SQLエスケープの例
SQL文字列エスケープの例を以下に示します:
生のSQL文字列
エスケープ済みSQL文字列
SQLエスケープが重要な場面
SQLインジェクション攻撃を防ぐために、ユーザーが提供した入力を常にエスケープしてください。
SQLクエリの整形には、SQLフォーマッターツールをご利用ください。
よくある質問
SQLエスケープはどの文字を処理しますか?
シングルクォート'を''に重複(標準SQL)。バックスラッシュ\を\\に重複(MySQLなど)。MySQL、PostgreSQL、SQLite、SQL Serverをカバー。
パラメータ化クエリの代わりにSQLエスケープを使うべきですか?
いいえ — 新規コードではパラメータ化クエリが常に推奨されます。SQLエスケープはレガシーシステムやアプリケーションコード外でのデータ処理に有用です。
このツールはMySQL、PostgreSQL、SQL Serverで使えますか?
一般的なケースではYes。シングルクォートの重複は全主要データベースで標準。バックスラッシュエスケープはMySQL固有 — PostgreSQLは標準重複かE'...'を使用。
私のSQLデータはサーバーに送信されますか?
いいえ。全ての処理はブラウザ内で行われます。SQLがデバイスから外に出ることはなく、バックエンドも存在しません。
SQLインジェクションとは何で、エスケープはどう役立ちますか?
SQLインジェクションは悪意ある入力で意図しないSQLコマンドを実行する攻撃です。適切なエスケープにより、注入された文字がSQL構文として解釈されるのを防ぎます。