0

重複の可能性:
PHP で SQL インジェクションを防止する最善の方法

次のコードから何か他のものを使用する必要がありますか?

         if(isset($_POST['submit'])) {
         $username = $_POST['username'];
         $password = $_POST['password'];
         $validate = '/^[a-z]+[a-z0-9]*[.-_]*$/i';
               if ((preg_match($validate , $username)==true) && (preg_match($validate ,                                                                                     $password)==true)) {

                        some query...   
               } else {
                        echo "You've used some characters that aren't allowed.";
               }
       }else {
               echo 'Not logged!';  
       }

この正規表現は、SQL インジェクションから私を救うのに役立ちますか?それとも、ログイン フォームを十分に良くするための他の提案を教えてください!

4

1 に答える 1

3

ドライバーがまだ古い場合は使用します。mysql_real_escape_string新しいpdoドライバーを使用している場合は、パラメーターをバインドしたプリペアドステートメントを使用するかmysqli_real_escape_string、mysqliから使用します。

http://php.net/manual/en/function.mysql-real-escape-string.php

http://php.net/manual/en/pdo.prepared-statements.php

http://php.net/manual/en/mysqli.real-escape-string.php

于 2012-06-04T18:47:01.793 に答える