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 サイトの他の関連記事を参照してください。