我正在调查一个可以sql注入的项目(一个用户报告它)。不安全的登录脚本 - 如何保护
这里是登录脚本的一部分:
$loginemail = $_POST['loginemail'];
$loginemail_sql = mysql_real_escape_string($loginemail);
$password = $_POST['loginpass'];
$password_sql = mysql_real_escape_string($password);
//get user data
$q = 'SELECT uid, full_name, score, status FROM users WHERE email="'.$loginemail.'" AND password="'.$password_sql.'" LIMIT 1';
我想现在如果这部分代码可能被注入? 是否有$ loginemail和$ password被错误处理并可能包含一些危险的“SQL部分”的问题?
'mysql_real_escape_string'已被弃用,你应该散列密码。 – 2013-03-20 19:56:36
[更多信息](http://www.php.net/manual/en/mysqlinfo.api.choosing.php)对'mysql *'函数的弃用。切换到'mysqli'或PDO。 – ajp15243 2013-03-20 19:59:29