您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

sql注入原理及防范_MySQL

2024/7/6 19:17:12发布38次查看
一: sql注入原理
原理就是利用服务器执行sql参数时的特殊性,将正常的数据库字段注入特征字符组成新的sql语句,导致原来的sql语句“变了味”
举一个简单的例子
$id = $_get['id']; /// id= 10001 or 1 = 1 #
$qq = $_get['qq']; // qq= 261414' or 1 = 1 #
$sql = select * from `user` where id=$id and $qq = '.$qq.';
$results = $db->query($sql);
二: 如何防范:
1. web参数过滤,只允许约定的字符出现,但过于暴力
2. 拼装的sql语句用mysql_real_escape_string方法进行过滤
$username = mysql_real_escape_string($_get['username']);
3. mysql用户权限设置,不要用root
4. 使用sql注入扫描工具测试
附:
pdo的prepare是怎么防范sql注入的
当调用prepare()时,查询语句先被发送给了mysql,此时只有占位符发送过去,没有用户提交的数据(mysql做预编译,一定程度上会优化查询效率,特别是对同个sql模版进行多次调用时);当调用execute()时,用户提交的值才会传送给mysql。从而达到防范sql注入的目的。.
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product