1

私はこれらの魔法の引用について混乱しています。
それらは私のサーバーで有効になっています、そして私の質問は私が次のような関数を使ってそれらを無効にするべきかということです:

if(get_magic_quotes_gpc()){
 $username=stripslashes($username);
 $password=stripslashes($password);
}

入力をサニタイズするため、またはすべての仕事を魔法の引用符に任せる必要があります。
私は(学習目的で)SQLインジェクションを練習していて、魔法の引用符がオンになっていると何もできませんが、上記のコードを使用するとSQLインジェクションを実行できます。
だから私は魔法の引用符に固執するか、次のような関数を使用する必要があります:

if(get_magic_quotes_gpc()){
 $username=stripslashes($username);
 $password=stripslashes($password);
 $cleanUsername=mysql_real_escape_string($username);
 $cleanPassword=mysql_real_escape_string($password);
}

入力のサニタイズについてはあまり経験がないので、助けてください:(

4

1 に答える 1

1

マジッククォートは廃止され、次のバージョンのPHP(PHP 5.4)から削除されるため、これらに依存しないでください。(http://www.php.net/manual/en/security.magicquotes.phpを参照してください)SQLインジェクションを防ぐ最善の方法は、PDOとプリペアドステートメントを使用することです。詳細についてはhttp://fr2.php.net/manual/en/pdo.prepared-statements.phpを参照し、さらに必要な場合はgoogleでチュートリアルを検索してください。

于 2011-11-01T03:29:07.623 に答える