使用mysql_real_escape_string和stripslashes避免SQL注入

时间:2012-02-22 11:34:06

标签: php mysql

这是在运行数据库查询之前阻止SQL注入的好方法吗?

$name = mysql_real_escape_string(stripslashes($name));
$age = mysql_real_escape_string(stripslashes($age));
$location = mysql_real_escape_string(stripslashes($location));

提前致谢!

1 个答案:

答案 0 :(得分:4)

这很好地解答了:

  

那你能做什么?解决方案是使用预备语句,其中   几乎所有PHP数据库扩展都支持着名的   MySQL(ext / mysql)和SQLite2(ext / sqlite)的例外。 所以,继续   安全方面,我建议使用PDO界面进行对话   那些数据库或MySQL的情况下使用较新的MySQLi   (ext / mysqli)扩展名。这些接口提供预处理语句   支持,允许查询结构和   查询参数。

因此,为了更加安全,不要单独依赖mysql_real_escape_string,使用预准备语句要好得多。