1

重複の可能性:
SQL インジェクションを防ぐには?

これは、データベースに入れるものをクリーンアップするための私の試みです

$pictureID = $_REQUEST['pictureID'];
$userID = $_REQUEST['userID'];
$username = $_REQUEST['username'];

//Sanatize //Protext against injection

$username = filter_var($username, FILTER_SANITIZE_EMAIL);
$userID = filter_var($userID, FILTER_SANITIZE_STRING);
$pictureID = filter_var($pictureID, FILTER_SANITIZE_STRING);

$username = stripslashes($username);
$username = mysql_real_escape_string($username);

$userID = stripslashes($userID);
$userID = mysql_real_escape_string($userID);

$pictureID = stripslashes($pictureID);
$pictureID = mysql_real_escape_string($pictureID);

2つ質問がありますが、上記で十分ですか?

また、echo $pictureID何も表示されない場合は、削除する$pictureID = mysql_real_escape_string($pictureID);と機能しecho $pictureIDます。

これは正しい動作ですか?

4

2 に答える 2

3

わお...

あなたは本当にそれほど必要ありません

準備されたクエリで PDO または mysqli を使用してみてください。そうすれば、そのナンセンスはすべて必要ないはずです。


アドバイスについては、この缶詰のコメントを参照してください。

mysql_*新しいコードで関数を使用しないでください。それらはもはや保守されておらず、公式に非推奨です赤いボックスがか? 代わりにプリペアド ステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事は、どちらを使用するかを決めるのに役立ちます。PDO を選択する場合は、ここに良いチュートリアルがあります。

于 2012-12-20T17:47:10.480 に答える