sql注入攻击与预防

一、常用的sql注入方法

1、数字

http://localhost/article.php?id=-1 OR 1=1;

2、字符串

用户登陆

用户名填 admin”#

密码可以随便填

可能拼接的sql语句是

'SELECT * FROM admin WHERE username=admin"#" AND password="123"'

注意:#后面的代码会被注释,因此可以绕过对用户名和密码对判断。

二、常见防御sql注入的方法

1、最有效简单的办法是使用pdo预处理

pdo预处理会对传入的参数进行处理,可以有效防御sql注入

2、对参数进行过滤

数字参数,可以使用is_numeric判断或intval强转

字符串参数,可以使用正则匹配过滤

preg_match('/[a-zA-Z]{6,}/',$usrname);

或者用addslashes对特殊字符转义。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注