吴江科度门窗怎么样:'or'='or' 可以登录后台吗?
这是以前的一个漏洞吗?(SQL漏洞吗?)
可以登录哪类型后台?
浏览网站或BBS的时候,经常会有管理员登录页面存在,这是为了方便管理而设置的。可是在管理登录页面中存在一个很严重的漏洞——如果账号和密码中都输入'OR''=',即可直接进入管理页面。
笔者做了一个测试,用Google搜索“管理员登录”,在搜索结果中随机选取了20个网页(包括一些著名品牌的电脑网站、大型商场网站、学校网站、个人网站、BBS等),利用'OR''='漏洞测试后发现,其中有12个网页能成功获得管理员权限。网站管理员的重要性想必大家也知道,他们往往能够主宰网站的命运。是个人网站、BBS等小网站还好,管理员权限至多是添加或删除几个文件或帖子;可如果是著名品牌电脑网站或大型商场网站的管理员,他们则可以更改机型、配置、价格、进货、出货等重要数据。是不是很恐怖?
现在我们就来分析一下神秘的'OR''='漏洞:
user=request.form("user")
pass=request.form("pass")
.......
sql="select * from guestbook where user='"&user&"' and pass='"&pass&"'" (*)
如果把'OR''='引入(*)中,则user和pass中就会得到这样的代码:
sql="select * from guestbook where user="or"=" and pass="or"=""
因为"="的值是真,那么user='"&user&"' and pass='"&pass&"'的值也绝对是真,所以登录能够成功。
防范指南
解决这个问题的方法也很简单,将(*)改成如下的语句即可:
sql="select * from guestbook where user='"&user&"'"
.......
if pass=rs("pass")
then 就打开管理网页
else
就打开身份验证网页
end if
这样就可以解决'OR''='漏洞的问题。
如果你熟悉Javascript,也可以用Javascript来限制用户名和密码中出现的特殊字符,一旦出现“'”就提示出错,这也是个不错的方法。
最后笔者还想提醒一下各位站长,'OR''='问题绝对不容忽视!