mysqli,或者说 MySQL 的高级扩展,有一些优点:
有面向对象的接口
prepared statements(预处理语句,可以有效防止 SQL-注入攻击,还能提高性能)
支持多种语句和事务
另外,如果你想支持多数据库那么应该考虑一下
PDO。
3.不过滤用户输入
应该是:永远别相信用户的输入。用后端的
PHP 来校验过滤每一条输入的信息,不要相信
Javascript。像下面这样的 SQL 语句很容易就会被攻击:
1
$username = $_POST["name"];
2
3
$password = $_POST["password"];
4
5
$sql = "SELECT userid FROM usertable WHERE username='$username'AND
password='$password';"; // run query...
6
这样的代码,如果用户输入
”admin’;”那么,就相当于下面这条了:
7
SELECT userid FROM usertable WHERE username='admin';
8
这样入侵者就能不输入密码,就通过
admin 身份登录了。
4.不使用 UTF-8