[发明专利]一种基于C/S架构的SQL注入检测方法及其装置有效
申请号: | 202010662451.7 | 申请日: | 2020-07-10 |
公开(公告)号: | CN111832023B | 公开(公告)日: | 2021-04-27 |
发明(设计)人: | 刘佛福;李辉;林友钦 | 申请(专利权)人: | 厦门靠谱云股份有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/57;H04L29/06 |
代理公司: | 北京律远专利代理事务所(普通合伙) 11574 | 代理人: | 王冠宇 |
地址: | 360100 福建省厦门市火*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 架构 sql 注入 检测 方法 及其 装置 | ||
1.一种基于C/S架构的SQL注入检测方法,其特征在于:
接收客户端提交的数据;
在WebServer端对所述数据执行SQL注入检测,查看WebServer端存储的黑名单,判断用户端网页IP地址否在所述黑名单中;
若是,则禁止访问所有请求的URL地址;
若否,则基于预设的SQL注入检测算法检测客户端提交的数据,所述预设的SQL注入检测算法为静态分析和动态分析相结合的检测算法;
若检测结果为合法,则允许正常访问网站;
若检测结果为非法,则禁止访问所有请求的URL地址,并更新WebServer端的黑名单,将所述IP地址添加至黑名单;所述基于预设的SQL注入检测算法检测客户端提交的数据进一步包括:定义函数f,用于删除数据中SQL查询语句的属性值;令FQ为一条SQL查询语句,则FDQ=f(FQ),FDQ为FQ删除在‘=’之后或括号内的字符串值以后的SQL查询语句;
所述基于预设的SQL注入检测算法检测客户端提交的数据进一步包括:在Web应用程序运行过程中,遍历该Web应用程序中所有固定SQL查询语句,对于每一条固定SQL查询语句FIX_SQLi,有:DYN_SQLi=f(FIX_SQLi),得到对应的动态SQL查询语句DYN_SQLi;
依据下述公式计算得到中间结果result:
result=FIX_SQLi⊕DYN_SQLi
其中⊕是异或操作;
判断所述中间结果result是否为零,若result=0,则说明数据正常,否则说明数据存在异常。
2.根据权利要求1所述的SQL注入检测方法,其特征在于,所述删除数据中SQL查询语句的属性值进一步包括:
定义函数DeletFirst(),用于提取并删除输入SQL查询语句中的第一个字符,并返回该字符;
定义两个状态常量IS_START和IS_END,表示SQL查询语句中“‘”符号的开始和结束状态;
定义中间状态变量Current_Status,初始化值为IS_END;
如果初始SQL查询语句sql不为空,则循环执行下述操作:
步骤S1、令临时变量char=DeletFrist(sql);
步骤S2、判断char是否为“‘”符号,如果是,则将char添加到待输出变量output中并执行步骤S3,返回步骤S1,否则,执行步骤S4;
步骤S3、判断char前一个字符是否为反斜杠“\”,如果是,则令Current_Status=IS_START,返回步骤S1;
步骤S4、判断Current_Status是否等于IS_END,如果是,则将char添加到待输出变量output中,返回步骤S1,否则,执行步骤S5;
步骤S5、判断char前一个字符是否为反斜杠“\”,如果是,则将char添加到待输出变量output中;
结束循环后返回所述变量output,作为删除属性值后的SQL查询语句。
3.一种基于权利要求1所述C/S架构的SQL注入检测方法的装置,其特征在于:
接收模块,用于接收客户端提交的数据;
检测模块,位于WebServer端,用于在WebServer端对所述数据执行SQL注入检测;
所述检测模块包括黑名单判断模块和SQL注入检测算法模块,其中黑名单那判断模块用于查看WebServer端存储的黑名单,判断用户端网页IP地址否在所述黑名单中,若是,则禁止访问所有请求的URL地址;
若否,则由SQL注入检测算法模块基于预设的SQL注入检测算法检测客户端提交的数据,所述预设的SQL注入检测算法为静态分析和动态分析相结合的检测算法;
若检测结果为合法,则允许正常访问网站;
若检测结果为非法,则禁止访问所有请求的URL地址,并更新WebServer端的黑名单,将所述IP地址添加至黑名单。
4.根据权利要求3所述的SQL注入检测装置,其特征在于,所述基于预设的SQL注入检测算法检测客户端提交的数据进一步包括:
定义函数f,用于删除数据中SQL查询语句的属性值;令FQ为一条SQL查询语句,则FDQ=f(FQ),FDQ为FQ删除在‘=’之后或括号内的字符串值以后的SQL查询语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门靠谱云股份有限公司,未经厦门靠谱云股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010662451.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种含咔唑环的化合物及其应用
- 下一篇:一种筷子套智能设备及管理系统