[发明专利]一种基于内存的SQL注入攻击防护方法有效
申请号: | 201210575897.1 | 申请日: | 2012-12-26 |
公开(公告)号: | CN103067376B | 公开(公告)日: | 2017-03-15 |
发明(设计)人: | 吴为民;梁浩 | 申请(专利权)人: | 北京讯鸟软件有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京汲智翼成知识产权代理事务所(普通合伙)11381 | 代理人: | 陈曦,景志 |
地址: | 100086 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 内存 sql 注入 攻击 防护 方法 | ||
技术领域
本发明涉及一种SQL注入攻击防护方法,尤其涉及一种基于内存的SQL注入攻击防护方法,属于网络安全技术领域。
背景技术
随着Internet的发展,基于B/S模式的Web应用系统,例如电子商务系统、电子政务系统等越来越受到各位用户的青睐。大部分Web应用系统需要与用户进行交互。在用户申请向服务器申请交互时,服务器通过登录界面验证、控制和记录用户的行为,起到了保护操作安全的作用。
传统的数据库验证模式,通常是用户在登录界面上,输入用户名、密码后,先在客户端进行数据合法性验证,如果数据不合法(如输入了不允许输入的字符)或内容为空,则提示用户输入错误,否则将两个信息提交到后台程序。在服务器端的后台程序中,将这两个信息经过梳理,在存储用户注册信息的持久化介质(如数据库、文件)中,对应该用户的注册信息进行比较,如果验证成功,则建立该用户的会话信息,并让用户登录到后台页面。在用户与服务器端的整个交互过程中,利用会话的信息,对用户进行权限验证。在用户登出系统后,注销会话信息。如果验证不成功,则提示用户登录信息错误,并退回到登录界面。但是,传统的数据库验证模式存在如下问题:客户端或服务器端验证不严格,无法避免用户输入一些非法的信息,其中最危险的是SQL注入。
所谓SQL注入,就是通过把经过精心设计的SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终欺骗服务器执行恶意的SQL命令,比如很多影视网站泄露VIP会员密码大多就是通过Web表单递交查询字符实现的,这类表单特别容易受到SQL注入式攻击。由于SQL注入从正常的WWW端口访问,并且看起来和正常的Web页面访问没有什么区别,所以目前常用的防火墙检测不到SQL注入。
利用SQL注入的基本方法,对提交的用户名和密码信息进行验证时执行语句如下:
”Select*from aa_user where user_name=’”.$user_name.”’and password='”.$password.”'Limit1”
其中,$user_name和$password为两个变量,分别指代用户通过登录界面向服务器提交的用户名和密码信息。当按照上述的SQL语句,验证了当用户表里有用户提交的这条数据(用户名和密码同时存在于一条记录中)时,则返回记录集,表示验证成功,否则返回空。
当用户名和密码都输入:’or1时,原本的SQL被拆分成如下语句:
Select*from aa_user where user name=''or1and password=''or1limit1
通过这种SQL语句的与或执行顺序,绕过了对用户名和密码的验证,可以实现非法登录、窃取用户信息的目的。
发明内容
针对现有技术所存在的不足,本发明所要解决的技术问题在于提供一种基于内存的SQL注入攻击防护方法。该方法既能防止SQL注入攻击,又能大大提高服务器用户验证的速度。
为实现上述的发明目的,本发明采用下述的技术方案:
一种基于内存的SQL注入攻击防护方法,包括如下步骤:
用户注册:将用户信息放入数据库,并放入内存数据库中;
用户修改:修改数据库的用户信息,同步修改内存数据库的用户信息;
用户验证:按照配置项的状态选择内存数据库模式或者数据库模式验证用户信息。
其中较优地,所述用户信息在内存数据库中是以键值对形式存放的,其中,
用户名是键,验证信息是值。
其中较优地,所述按照配置项的状态选择内存数据库模式或者数据库模式验证用户信息的步骤进一步包括:
判断配置项的状态;
如果配置项是从内存数据库中验证,连接内存数据库验证用户信息;
如果配置项是从数据库中验证,连接数据库验证用户信息。
其中较优地,所述连接内存数据库验证用户信息的步骤进一步包括:
判断是否与内存数据库连接成功;
如果连接内存数据库成功,则获取用户信息的命名空间,并判断验证用户信息;
如果连接内存数据库不成功,则从数据库中验证用户信息。
其中较优地,所述则获取用户信息的命名空间,并判断验证用户信息的步骤进一步包括:
判断用户信息的命名空间;
如果为空,从数据库中遍历所有用户的信息,构造hash数据,并验证待登录用户信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京讯鸟软件有限公司,未经北京讯鸟软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210575897.1/2.html,转载请声明来源钻瓜专利网。