一、常用的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对特殊字符转义。