前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >防止sql注入以及注入原理

防止sql注入以及注入原理

作者头像
苦咖啡
发布2018-05-07 16:43:51
1.3K0
发布2018-05-07 16:43:51
举报
文章被收录于专栏:我的博客我的博客

1. 判断是否可以注入 id=145 and 1=1正常显示 id=145 and 1=2 我这里可以注入的是正常显示,网上说提示错误 id=145′后面加入‘这样提示错误(有的甚至连表名都提示了)

2. 猜管理员表名

比如原来是***.php?id=49在后面加入 And (Select Count(*) from Admin)>=0 ,如果页面和id=49一样那么,表名就可以确定了——————就是admin了。

3. 猜猜用户表中字段 将刚才的*换成你猜的字段,如果页面也和id=49的一样,恭喜你,字段名字出来了 常用字段名:(user,users,member,members,userlist,memberlist,userinfo,admin,manager,yonghu )

4. 然后判断管理表中有几个字段 输入:id=145 and 1=2 union select 1,1,1 from admin其中admin就是你刚才猜出来的管理表

5. 如果才出来字段会在页面上本来显示的地方显示成了数字,然后将数字替换成你才出来的字段名字,这样密码以及用户名都显示在页面上了。一般后台账户都是md5加密的,找个md5解密工具试试

下面介绍怎么过滤

[php]

function NO_SQL($str) { <span style="color: #ff0000;">$arr=array(‘select’,’update’,’delete’,’union’,’where’,’admin’,’insert’,’count’);</span>

//数组内的字符串是过滤掉的非法字符,如果传递有这样的非法字符,则提示非法操作,关闭窗口 foreach($arr as $pattern) {

if(preg_match("/$pattern/", $str)) { echo "<script language=\"javascript\">alert(\"非法操作!\");self.close();</script>"; exit(); break; } }

return $str; }[/php]

其他要注意编程规范

比如:字段名和表名要加上“  `  “”(这个就是tab上面那个键)、正确使用post和get、提高数据库名字命名、关闭错误提示、封装sql

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011年9月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档