Sql语句密码考证的安全漏洞[MSSQL防范]
本文“Sql语句密码考证的安全漏洞[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Sql语句作为国际尺度的数据库查询语句,在各种编程环境中得到了遍及的利用.作为一个成熟、安定的系统,用户登陆和密码考证是必不可少的.笔者在平常的编程工作中发现,很多程序员在用sql语句举行用户iTbulo . c omRmxcx
密码考证时是通过一个近似这样的语句来实现的:
Sql="Select * from 用户表 where 姓名='"+name+"' and 密码='"+password+"'"
此中name和password是存放用户输入的用户名和口令,通过履行上述语句来考证用户和密码能否合理有效.但是通过解析可以发现,上述语句却存在着致命的漏洞.当我们在用户名称中输入下面的字符串时:111'or'1=1,然后口令随便输入,我们设为aaaa.变量代换后,sql语句就变成了下面的字符串:
Sql="Select * from 用户表 where 姓名='111'or'1=1' and 密码='aaaa'
我们都知道select语句在判断查询条件时,碰到或(or)操作就会忽视下面的与(and)操作,而在上面的语句中1=1的值永久为true,这意味着无论在密码中输入什么值,均能通过上述的密码考证!这个问题的办理很简单,办法也很多,最常用的是在履行考证之前,对用户输入的用户和密码举行合理性判断,不答应输入单引号、等号等特别字符.
上述问题固然看起来简单,但确切是存在的.比方在互联网上很闻名望的网络游戏"笑傲江湖"的早期版本就存在着这样的问题,笔者也是在看了有关此游戏的漏洞报告后才细心解析了自己从前编写的一些程序,竟然有不少也存在着这样的漏洞.这确切应当惹起我们的注意.这也表暴露包含笔者在内的年青程序员在编程经验和安全意识上的不足.同时也提醒我们编程工作者在程序计划时该当充分考虑程序的安全性,不可有半点草率,一个看似很小的疏漏大概就会造成很严重的后果. iTbulo . c omRmxcx
以上是“Sql语句密码考证的安全漏洞[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |