2、使用PHP的mysql函数 PHP自产生之日就提供了MySQL库函数(or near as makes no difference)。很多应用仍然在使用类似mysql_connect、mysql_query、mysql_fetch_assoc等的函数,尽管PHP手册上说: 如果你在使用MySQL v4.1.3或者更新版本,强烈推荐使用您使用mysqli扩展。 mysqli(MySQL的加强版扩展)有以下几个优点: 可选的面向对象接口 prepared表达式,这有利于阻止SQL注入攻击,还能提高性能 支持更多的表达式和事务处理 另外,如果你想支持多种数据库系统,你还可以考虑PDO。
3、没有处理用户输入 这或者可以这样说#1:永远不要相信用户的输入。用服务器端的PHP验证每个字符串,不要寄希望与JavaScript。最简单的SQL注入攻击会利用如下的代码: 代码如下: $username = $_POST["name"]; $password = $_POST["password"]; $sql = "SELECT userid FROM usertable WHERE username='$username' AND password='$password';"; // run query...
只要在username字段输入“admin';--”,这样就会被黑到,相应的SQL语句如下: 代码如下: SELECT userid FROM usertable WHERE username='admin';