[发明专利]一种二阶SQL注入攻击防御的方法在审
申请号: | 201910890209.2 | 申请日: | 2019-09-20 |
公开(公告)号: | CN110647749A | 公开(公告)日: | 2020-01-03 |
发明(设计)人: | 刘敏;曾华光 | 申请(专利权)人: | 湖南大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F16/2452 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 410082 湖南省*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 触发 数据库 注入攻击行为 后台数据库 数据库数据 安全防护 攻击防御 有效防御 攻击 二阶 内存 存储 取出 验证 防御 分析 | ||
1.一种二阶SQL注入攻击防御的方法,其特征在于,包括如下步骤:
步骤一,扫描web源程序,筛选INSERT类型和UPDATE类型的SQL语句,对INSERT类型和UPDATE类型的SQL语句中的所有标准SQL关键字附加标注字符串进行SQL关键字变换处理;
步骤二,拦截WEB服务器发送给数据库服务器的SQL语句,对SQL语句进行筛选,如果SQL语句是INSERT类型或UPDATE类型,则执行步骤三;如果SQL语句是SELECT类型,则执行步骤四;否则,直接发送SQL语句给数据库服务器处理,并将响应数据集直接发送给WEB服务器;
步骤三,检测SQL语句中是否包含标准SQL关键字,若不包含,则对经过变换处理的SQL关键字进行还原,最后将还原后的SQL语句发送给数据库服务器;若包含标准SQL关键字,则判定SQL语句为注入攻击性语句,进行拦截并返回消息给WEB服务器;
步骤四,为SELECT类型的SQL语句增加一个固定ID号;
步骤五,获取数据库服务器中响应ID号对应的数据集,判断响应ID号对应的数据集是否包含特殊字符,若包含,则对特殊字符进行转义处理,将处理后新生成的数据集发送给WEB服务器;否则,直接将数据集发送给WEB服务器。
2.如权利要求1所述的二阶SQL注入攻击防御的方法,其特征在于,所述步骤一中,进行SQL关键字变换处理的步骤如下:
(1-1)、随机生成一个整数r,然后用共享密钥K和r进行异或加密得到R;
(1-2)、扫描web源程序,筛选出INSERT类型和UPDATE类型的SQL语句;
(1-3)、对筛选出的SQL语句,用正则表达式方法定位SQL语句中的标准SQL关键字M,将其变换处理为M+R格式的字符串,其中”+”为字符串连接符,使用经变换处理后的字符串动态构造新的SQL语句。
3.如权利要求1所述的二阶SQL注入攻击防御的方法,其特征在于,所述步骤三包括如下步骤:
(3-1)、判断SQL语句中是否包含与标准SQL关键字形式相同的字符串,若不包含,则执行步骤(3-2);若包含形式相同的字符串,则确定字符串是否是标准SQL关键字;若是标准SQL关键字,则判定为SQL注入攻击,拦截并向WEB服务器返回错误信息,否则,则执行步骤(3-2);
(3-2)、定位经变换处理后的标准SQL关键字,将R移除,还原SQL语句,将修改后的SQL语句发送给数据库服务器。
4.如权利要求1所述的二阶SQL注入攻击防御的方法,其特征在于,所述步骤五包括如下步骤:
(5-1)、获取数据库服务器中响应ID号对应的数据集;
(5-2)、检测数据集中是否包含特殊字符,若包含,则对特殊字符添加“\”进行转义处理,生成新的数据集返回给WEB服务器;否则,正常返回给WEB服务器。
5.如权利要求1所述的二阶SQL注入攻击防御的方法,其特征在于,所述特殊字符包括为会引起SQL语句的语法和语义发生改变的字符。
6.如权利要求1所述的二阶SQL注入攻击防御的方法,其特征在于,所述特殊字符包括‘?’、“;”、“‘”、‘“’、‘-’、‘#’、‘|’、‘\’和‘*’。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南大学,未经湖南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910890209.2/1.html,转载请声明来源钻瓜专利网。