ホームページ > データベース > mysql チュートリアル > Node.js で JavaScript 文字列を使用して MySQL に安全にクエリを実行するにはどうすればよいですか?

Node.js で JavaScript 文字列を使用して MySQL に安全にクエリを実行するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-03 19:13:42
オリジナル
930 人が閲覧しました

How Can I Safely Query MySQL with JavaScript Strings in Node.js?

JavaScript 文字列を使用した MySQL への NodeJS クエリ

MySQL データベース クエリのために電子メール アドレスを含む JavaScript 文字列を NodeJS サーバーに渡そうとすると、開発者は次のような問題に遭遇する可能性があります。特殊文字の存在による困難。これらの文字列を適切に処理するには、SQL との互換性を考慮して文字列を調整することが重要です。

PHP では、関数 mysql_real_escape_string() が、x00、n、r、、などの特定の文字の前にバックスラッシュを追加することで解決策を提供します。 '、"、および x1a。これにより、これらの文字が SQL クエリ内で問題を引き起こすのを防ぎます。

NodeJS の場合、同様の機能次のように実装できます。

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;
        }
    });
}
ログイン後にコピー

この関数は特殊文字をエスケープされたバージョンに置き換え、SQL クエリとの互換性を確保します。このソリューションはタブ、バックスペース、および '%' 文字もエスケープするため、次のような場合に適しています。 LIKE クエリも同様です。

SQL 文字列のエスケープの詳細については、次のディスカッションを参照してください。 [OWASP](https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload).

以上がNode.js で JavaScript 文字列を使用して MySQL に安全にクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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