用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2682|回复: 4
收起左侧

[已解决] codeigniter数据检索的严重安全问题

[复制链接]
发表于 2011-12-7 13:10:44 | 显示全部楼层 |阅读模式
我发现一个现象

id:主键、自增类型、无符号


$this->db->select('*')->where('id',$user_id);

存在一个id:155

但是,如果输入155a  或  155b  甚至155asdfasfd

都可以检索出155的数据

谁能解释这个现象

发表于 2011-12-7 13:44:00 | 显示全部楼层
你echo last_query()
可以看到where 条件是 id='$user_id'  这里条件后面所以值都加了引号的,所以在sql语句那认定是字符串形式了,mysql查询的是模糊匹配,如果你手动写sql语句 id=$user_id那么就不会有这个问题了.
 楼主| 发表于 2011-12-7 14:44:06 | 显示全部楼层
非常感谢
发表于 2011-12-7 20:37:58 | 显示全部楼层
啊~ 学习了
发表于 2012-3-21 23:00:14 | 显示全部楼层
不错,又学了点知识。

本版积分规则