POST传参数
sql语句
$sql = "SELECT * FROM {$this->table} WHERE admin_name = '$username' AND password = '$password' LIMIT 1";
万能密码:
xxx’or’1
原理:修改sql语句
防止:密码md5加密
万能用户名:
xxx’or1#
原理,#后面的全部不执行
总结:万能用户名和密码都利用了一个特殊符号,单引号,如果要防止就让单引号失去意义
addcslashes:单引号转义
所有调用表单信息都要使用转义
function deepslashes($data) {
if (empty($data)) {
return $data;
}
is_array($data) ? array_map('deepslashes', $data) : addcslashes($data);
}
GET传参数
sql语句:
delete from cz_category cat_id = 1
攻击参数:
1 or 1
通常是id强制转换为整形,或者输出变量+0隐示转换为整数