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 回答