ホームページ > データベース > mysql チュートリアル > MySQL クエリの JavaScript 文字列を安全にエスケープする方法

MySQL クエリの JavaScript 文字列を安全にエスケープする方法

DDD
リリース: 2025-01-02 18:50:38
オリジナル
503 人が閲覧しました

How to Safely Escape JavaScript Strings for MySQL Queries?

JavaScript 文字列を MySQL フレンドリーにする

クエリ実行のために電子メール アドレスを含む JavaScript 文字列を NodeJS サーバーに渡そうとするときMySQL データベースでは、ユーザーに問題が発生する可能性があります。ユーザー名などの通常のテキストは複雑なく処理されますが、電子メール アドレスは、SQL との互換性のためにエスケープが必要になる場合がある特殊文字による困難に直面しています。

この問題に対処するために、エスケープ関数の代替手段が模索されています。 PHP の mysql_real_escape_string() の機能。この関数は、特定の文字をエスケープすることで SQL インジェクションから保護します。

mysql_real_escape_string() の JavaScript 実装は、提供されているドキュメントに記載されているように、驚くほど簡単です。実装は次のとおりです。

function mysql_real_escape_string(str) {
    return str.replace(/[\x08\x09\x1a\n\r"'\\%]/g, function (char) {
        switch (char) {
            case "":
                return "\0";
            case "\x08":
                return "\b";
            case "\x09":
                return "\t";
            case "\x1a":
                return "\z";
            case "\n":
                return "\n";
            case "\r":
                return "\r";
            case "\"":
            case "'":
            case "\":
            case "%":
                return "\" + char; // prepends a backslash to backslash, percent,
                                   // and double/single quotes
            default:
                return char;
        }
    });
}
ログイン後にコピー

この実装は、タブ、バックスペース、'%' などの追加文字をエスケープすることで、元の PHP を超えており、LIKE クエリにも適していることに注意してください。

mysql_real_escape_string() は PHP では文字セットを認識しますが、JavaScript 実装におけるこの機能の利点は次のとおりです。不明瞭です。

このトピックに関するさらなる議論は、参照用に提供されたリンクにあります。

以上がMySQL クエリの JavaScript 文字列を安全にエスケープする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート