background image

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