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