公司使命:打造嘉兴技术实力最强的网络公司
服务项目:嘉兴网站建设 嘉兴网站制作 嘉兴网站优化
新闻中心

网站建设中,‘or’=’or’的安全漏洞

发布时间:2009/8/3 13:27:16   文章来源:jiaxingweb   浏览:[  ]   评论:[  ]

    在网站建设过程中,好多网络公司已经注意了这一点了,就是‘or’=’or’,这个漏洞已经出现好的年了,一般的程序设计人员都已经把这个漏洞给替补上了,但是还有好多网络公司,特别是用asp语言所写代码的网络公司,从所用语言来看,就知道这样的网络公司用的技术相对比较落后,所更要注意他们的技术人员的实力了,所以关于‘or’=’or’的漏洞检测是最基本的一部,

  ‘or’=’or’的漏洞原理是,利用sql的or关键词了逃过数据库sql语句对用户名和密码的验证,
在一般的程序中,可能都会这样写sql语句来检测用户名和密码,如下:
select * from admin where username=’"&user&"’ and password=’"&pwd&"’

    这是sql语句,里面有两个变量 分别是user和pwd 这样的语句如果用’or’=’or’来代替得出的sql语句为:
select * from admin where username=''or'='or'' and password=''or'='or''

    在sql语句中逻辑运算符的优先级为not   and   or

    也就是说本句话执行顺序应该为:select * from admin where username=''or'='or('' and password=')or'='or''

    select * from admin where adminname=''or'='or'' and AdminPws=''or'='or''

    在本语句中有四个or ,在sql语法中or是或的意思,也就是一个条件满足,整句话都满足,而且后面的语句段都不在执行。
select * from admin where username=''or'='or or'='or''
select * from admin where username=''or'='or or'='
select * from admin where username=''or'='or
select * from admin where username=''or'=’
这些语句都是想同的,

    在所有语句中也就是or和单引号做在的作用,所以在最基本的解决办法就是过滤掉单引号,就是用replace语句过滤掉单引号,使其变成双引号或者空格。
replace(username,"'","''")
replace(username,"'"," ")

评论
发表评论
评论内容:
昵称:
邮箱:
嘉兴网络公司 嘉兴网站建设 嘉兴网站制作 嘉兴建网站 嘉兴做网站 嘉兴网页制作 PE给水管 HDPE中空壁缠绕管 ABS管生产厂家
服务热线: 0573-82102225 15858312461 QQ: 56373131 E-mail: sales@jiaxingweb.com 地址: 嘉兴市南湖区富润路101号320室 浙ICP备09050985号
嘉兴网站建设-嘉兴网站制作-嘉兴网站优化-龙媒网络@嘉兴网络公司 www.jiaxingweb.com