sql注入攻击

来源:互联网 发布:学校资产管理系统源码 编辑:程序博客网 时间:2024/05/16 19:30

用户可以利用向php表单输入的数据完成对mysql的注入攻击。

例如我的查询是 insert table into  xx  values('用户名','号码','文件',0).在用户输入时最后一位只能是0.(用户不需要输入)。这时用户在号码处输入

10000','xxxx.gif.,1) --

-- 双连字符后加一个空格是sql的注释语句,表单上传到数据库的查询条件变成了insert table into  xx  values('用户名',10000','xxxx.gif.,1) --‘文件’

所以最后一列本该为0被强制置为1.称为sql注入攻击。

解决方法是:

1.使用内置php函数trim()去除前导或末尾空格。$name = trim($_POST['name']);

2.使用内置函数mysqli_real_escape_string()将可能有危险的字符转义。$name = mysqli_real_escape_string(trim($_POST['name']));

3.省略掉最后一列的输入,改为使用初始值default。使用mysql语句:ALTER TABLE table_name MODIFY COLUMN approved TINYINT DEFAULT 0

默认为0,php中不再向sql输入数据。

0 0
原创粉丝点击