MySQLiを使って文字列をエスケープするための基本的なラッパー関数を書きました。これを使用すると何か問題はありますか?元のものよりも良いですか?それは役に立ちますか?このカスタムMySQLiエスケープPHP関数の使用に何か問題はありますか?
この関数は、MySQLi接続である$conn
とエスケープする文字列である&$var
の2つの引数をとります。
function escapestr($conn, &$var){
$var = $conn->real_escape_string($var);
return $var;
}
使用法:
$conn = mysqli_connect("localhost", "username", "password", "my_favourite_db");
$userInput = $_GET["input"]; // value: this is my "inputted" string
$userInput = escapestr($conn, $userInput); // value: this is my \"inputted\" string
それとも、それは直接変数を更新することができます。
$conn = mysqli_connect("localhost", "username", "password", "my_favourite_db");
$userInput = $_GET["input"]; // value: this is my "inputted" string
escapestr($conn, $userInput); // value: this is my \"inputted\" string
完全に無意味な機能。あなたがセキュリティを心配している場合は、とにかく準備されたステートメントを使用する必要があります。 –
'$ var'が"参照渡し "の___と__が関数から返されているのはなぜですか? –
エスケープでやっていることがわからないものは悪いです。これは古典的な例です。その変数が2回使用されると深刻な問題を引き起こす可能性のある元の文字列をmangleするので、元の文字列よりも悪くなります。 – tadman