在学生优化的过程中药更多的把自己放在一个用户的角度来看待整个的设计所存在的问题,本着方便与人的想法,学生优化所遇到的问题有:
一、SQL注入问题
在登录界面填好正确的用户名和密码后, 根据我们提交的用户名和密码被合成到SQL查询语句:
select * from users where username='lm' and password=md5('test')
很明显,用户名和密码是我们所设置的,肯定能够成功登陆。但是,如果我们输入一个错误的用户名或密码,肯定登录不上,但是对于有SQL注入漏洞,只要构造个特殊的“字符串”,照样能够成功登录。
比如:在用户名输入框中输入:' or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为:
select * from users where username='' or 1=1#' and password=md5('')
语义分析:“#”在mysql中是注释符,这样井号后面的内容将被mysql视为注释内容,以下的两句sql语句等价:
代码如下: