sql 注入越过登录验证实例
根据我们提交的用户名和密码被合成到SQL查询语句当中之后是这样的:select * from users where username='user' and password='password'
。很明显,用户名和密码都和我们数据库给出的一样,肯定能够成功登陆。但是,如果我们输入一个错误的用户名或密码呢?很明显,肯定登入不了吧。恩,正常情况下是如此,但是对于有SQL注入漏洞的网站来说,只要构造个特殊的“字符串”,照样能够成功登录。
比如:在用户名输入框中输入:or 1=1#
。密码随便输入,这时候的合成后的SQL查询语句为:select * from users where username='' or 1=1#' and password='password'
。语义分析:用户名验证肯定为真(1=1),“#”在mysql中是注释符,这样井号后面的内容将被mysql视为注释内容,这样就不会去执行了。这样不论你密码输入什么都能登录!(因此需要防止sql语句注册,如何防止,请看下一篇手记:为什么使用PreparedStatement)
点击查看更多内容
18人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦