CN107358098A - 基于插件的结构化查询语言sql注入检测方法和装置 - Google Patents

基于插件的结构化查询语言sql注入检测方法和装置 Download PDF

Info

Publication number
CN107358098A
CN107358098A CN201710574499.0A CN201710574499A CN107358098A CN 107358098 A CN107358098 A CN 107358098A CN 201710574499 A CN201710574499 A CN 201710574499A CN 107358098 A CN107358098 A CN 107358098A
Authority
CN
China
Prior art keywords
sql
morphology
complete
database access
sentences
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710574499.0A
Other languages
English (en)
Inventor
周黎明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing An Information Technology Co Ltd
Original Assignee
Beijing An Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing An Information Technology Co Ltd filed Critical Beijing An Information Technology Co Ltd
Priority to CN201710574499.0A priority Critical patent/CN107358098A/zh
Publication of CN107358098A publication Critical patent/CN107358098A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了基于插件的结构化查询语言SQL注入检测方法和装置,在全球广域网Web应用服务器上部署SQL拦截插件,Web应用服务器中执行如下SQL注入检测方法包括:接收数据库访问请求;获取数据库访问请求中的请求参数值,判断当前请求参数值中是否存在SQL关键字;若当前请求参数值中存在SQL关键字,从数据库访问请求中,获取的包含SQL关键字的完整SQL语句;提取完整SQL语句的词法,若完整SQL语句的词法与SQL查询原生语句的词法不一致,则采用SQL拦截插件在数据库访问请求中加入SQL拦截探针。本发明能够解决现有的SQL注入检测技术存在的误报和漏报的问题。

Description

基于插件的结构化查询语言SQL注入检测方法和装置
技术领域
本发明涉及网络信息安全技术领域,具体涉及基于插件的结构化查询语言SQL注入检测方法和装置。
背景技术
在网络安全技术领域,使用B/S(浏览器/服务器)模式进行应用开发时,若没有对客户端侧用户输入数据的合法性进行检测,则会使得应用程序存在一定的安全隐患,导致应用程序存在结构化查询语言(SQL,Structured Query Language)注入风险。
SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库***,SQL注入防护一直是网络安全的重点。而SQL注入通过把SQL命令***到Web表单中,或把SQL命令输入域名中或把SQL命令***到页面请求的查询字符串中,最终达到欺骗服务器来执行恶意的SQL命令。攻击者通过SQL注入,对应用程序造成攻击,从而获得敏感信息,并且在一些情况下,还有可能导致服务器权限的丢失。因此,对于数据库***来说,防御SQL注入相当重要,而网站管理人员对SQL注入的防御也极其重视。
目前,常见的SQL注入防御技术通常采用网络抓包的方式,也就是说将通过网络中间安全设备抓取到网络数据包,然后分析这个数据包到达服务器后可能会有什么影响。比如访问http://www.aaaa.com/a.html?1=1or 2=2,非常有可能这个a.html仅仅是一个静态页面,没有任何对数据库的操作,而对于这种访问传统的应用防火墙一定是会将其上报为SQL攻击,这就是非常明显的误报。由于对于访问的url进行解码失败、解密失败的情况,漏报也会出现。
因此目前急需一种精确的SQL注入检测方式,避免误报和的出现。
发明内容
本发明的目的在于提供基于插件的结构化查询语言SQL注入检测方法和装置,用以解决现有的SQL注入检测技术存在的误报和漏报的问题。
为实现上述目的,本发明方法包括如下步骤:
基于插件的结构化查询语言SQL注入检测方法,在全球广域网Web应用服务器上部署SQL拦截插件,Web应用服务器中执行如下SQL注入检测方法包括:
接收数据库访问请求。
获取数据库访问请求中的请求参数值,判断当前请求参数值中是否存在SQL关键字。
若当前请求参数值中存在SQL关键字,从数据库访问请求中,获取的包含SQL关键字的完整SQL语句。
提取完整SQL语句的词法,若完整SQL语句的词法与SQL查询原生语句的词法不一致,则采用SQL拦截插件在所述数据库访问请求中加入SQL拦截探针。
进一步地,数据库访问请求包含2个以上的请求参数值。
进一步地,判断当前请求参数值中是否存在SQL关键字,还包括:
若当前请求参数值中不存在SQL关键字,则获取下一个请求参数值。
进一步地,提取完整SQL语句的词法之后,还包括:
若完整SQL语句的词法与SQL查询原生语句的词法一致,则允许数据库访问请求。
进一步地,提取完整SQL语句的词法之前,还包括:
去掉完整SQL语句中的SQL关键字。
本发明还提供了基于插件的结构化查询语言SQL注入检测装置,在全球广域网Web应用服务器上部署SQL拦截插件,同时在所述Web应用服务器上部署SQL注入检测装置。
SQL注入检测装置包括接收模块、第一判断模块、第二判断模块以及拦截模块。
接收模块,用于接收数据库访问请求,将数据库访问请求送入第一判断模块。
第一判断模块,用于获取数据库访问请求中的请求参数值,判断当前请求参数值中是否存在SQL关键字,若当前请求参数值中存在SQL关键字,将数据库访问请求送入到第二判断模块。
第二判断模块,用于从数据库访问请求中,获取包含SQL关键字的完整SQL语句;判断完整SQL语句的词法与SQL查询原生语句的词法是否一致,若完整SQL语句的词法与SQL查询原生语句的词法一致,则将数据库访问请求送入到拦截模块。
拦截模块,用于采用SQL拦截插件在所述数据库访问请求中加入SQL拦截探针。
进一步地,数据库访问请求中包含两个以上请求参数值。
进一步地,第一判断模块,还用于:
判断若当前请求参数值中不存在SQL关键字,则获取下一个请求参数值。
进一步地,第二判断模块,还用于:
判断若完整SQL语句的词法与SQL查询原生语句的词法一致,则允许数据库访问请求。
进一步地,第二判断模块,还用于:
在获取包含SQL关键字的完整SQL语句之后,去掉完整SQL语句中的SQL关键字。
本发明方法具有如下优点:
本发明对数据库访问请求是否造成SQL注入判断时,首先判断请求参数值中是否存在SQL关键字,若存在SQL关键词,再对完整SQL语句的词法进行判断,若词法不符合原生语句,则将该数据库访问请求判断为会造成SQL注入,这种方法一方面通过SQL关键词判断可以避免漏报,另一方面通过对完整SQL语句判断排除有些SQL是本身应用内置或者程序写死的需要执行的,不是由请求参数值带入而引起的SQL查询,避免了误报,因此本发明可以完全解决SQL注入攻击误报和漏报的问题。
附图说明
图1本发明实施例1给出的方法的流程图。
图2本发明实施例2给出的装置的结构组成图。
具体实施方式
以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例1
本发明方法流程如图1所示,在全球广域网Web应用服务器上部署SQL拦截插件,Web应用服务器中执行如下步骤:
基于插件的结构化查询语言SQL注入检测方法,SQL注入检测方法包括:
S1、接收数据库访问请求。
S2、获取数据库访问请求中的请求参数值,判断获取的当前请求参数值中是否存在SQL关键字。
若当前请求参数值中存在SQL关键字,执行S3;
S3、从数据库访问请求中,获取包含SQL关键字的完整SQL语句。
S4、提取完整SQL语句的词法,若完整SQL语句的词法与SQL查询原生语句的词法不一致,执行S5;
S5、采用所述SQL拦截插件在所述数据库访问请求中加入SQL拦截探针,从而实现对具有SQL注入风险的数据库访问请求的拦截。
本发明实施例S2中,判断当前请求参数值中是否存在SQL关键字,若当前请求参数值中不存在SQL关键字,则执行S21;
S21、获取下一个数据库访问请求,返回S2重新判断当前请求参数值中是否存在SQL关键字。
本实施例S4中,提取完整SQL语句的词法之后,若完整SQL语句的词法与SQL查询原生语句的词法一致,则执行S41。
S41、允许数据库访问请求。
本实施例S4中,提取完整SQL语句的词法之前,还包括:
去掉完整SQL语句中的SQL关键字。
本发明方法具有如下优点:
本发明对数据库访问请求是否造成SQL注入判断时,首先判断请求参数值中是否存在SQL关键字,若存在SQL关键词,再对完整SQL语句的词法进行判断,若词法不符合原生语句,则将该数据库访问请求判断为会造成SQL注入,这种方法一方面通过SQL关键词判断可以避免漏报,另一方面通过对完整SQL语句判断排除有些SQL是本身应用内置或者程序写死的需要执行的,不是由请求参数值带入而引起的SQL查询,避免了误报,因此本发明可以完全解决SQL注入攻击误报和漏报的问题。
实施例2
本发明还提供了用于实施上述基于插件的SQL注入检测方法的装置,在全球广域网Web应用服务器上部署SQL拦截插件,同时在所述Web应用服务器上部署SQL注入检测装置。该装置组成框图如图2所示,包括接收模块、第一判断模块、第二判断模块以及拦截模块。
接收模块,用于接收数据库访问请求,将数据库访问请求送入第一判断模块。
第一判断模块,用于获取数据库访问请求中的请求参数值,判断当前请求参数值中是否存在SQL关键字,若当前请求参数值中存在SQL关键字,将数据库访问请求送入到第二判断模块。
第二判断模块,用于从数据库访问请求中,获取包含SQL关键字的完整SQL语句;判断完整SQL语句的词法与SQL查询原生语句的词法是否一致,若完整SQL语句的词法与SQL查询原生语句的词法一致,则将数据库访问请求送入到拦截模块。
拦截模块,用于采用所述SQL拦截插件在所述数据库访问请求中加入SQL拦截探针,从而实现对具有SQL注入风险的数据库访问请求的拦截。
本实施例中,第一判断模块,还用于:
判断若当前请求参数值中不存在SQL关键字,则获取下一个数据库访问请求。
本实施例中,第二判断模块,还用于:
判断若完整SQL语句的词法与SQL查询原生语句的词法一致,则允许数据库访问请求。
本实施例中,第二判断模块,还用于:
在获取包含SQL关键字的完整SQL语句之后,去掉完整SQL语句中的SQL关键字。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

Claims (8)

1.基于插件的结构化查询语言SQL注入检测方法,其特征在于,在全球广域网Web应用服务器上部署SQL拦截插件,所述Web应用服务器中执行如下SQL注入检测方法包括:
获取数据库访问请求中的请求参数值,判断当前请求参数值中是否存在SQL关键字;
若所述当前请求参数值中存在所述SQL关键字,从所述数据库访问请求中,获取的包含所述SQL关键字的完整SQL语句;
提取所述完整SQL语句的词法,若所述完整SQL语句的词法与SQL查询原生语句的词法不一致,则采用所述SQL拦截插件在所述数据库访问请求中加入SQL拦截探针。
2.如权利要求1所述SQL注入检测方法,其特征在于,所述判断当前请求参数值中是否存在SQL关键字,还包括:
若所述当前请求参数值中不存在所述SQL关键字,则获取下一个数据库访问请求。
3.如权利要求1或者2所述SQL注入检测方法,其特征在于,所述提取所述完整SQL语句的词法之后,还包括:
若所述完整SQL语句的词法与SQL查询原生语句的词法一致,则允许所述数据库访问请求。
4.如权利要求1或者2所述SQL注入检测方法,其特征在于,所述提取所述完整SQL语句的词法之前,还包括:
去掉所述完整SQL语句中的所述SQL关键字。
5.基于插件的结构化查询语言SQL注入检测装置,其特征在于,在全球广域网Web应用服务器上部署SQL拦截插件,同时在所述Web应用服务器上部署SQL注入检测装置;
所述SQL注入检测装置包括接收模块、第一判断模块、第二判断模块以及拦截模块;
所述接收模块,用于接收数据库访问请求,将所述数据库访问请求送入第一判断模块;
所述第一判断模块,用于获取数据库访问请求中的请求参数值,判断当前请求参数值中是否存在SQL关键字,若当前请求参数值中存在SQL关键字,将所述数据库访问请求送入到所述第二判断模块;
所述第二判断模块,用于从所述数据库访问请求中,获取包含所述SQL关键字的完整SQL语句;判断所述完整SQL语句的词法与SQL查询原生语句的词法是否一致,若所述完整SQL语句的词法与SQL查询原生语句的词法一致,则将所述数据库访问请求送入到所述拦截模块;
所述拦截模块,用于采用所述SQL拦截插件在所述数据库访问请求中加入SQL拦截探针。
6.如权利要求5所述SQL注入检测装置,其特征在于,所述第一判断模块,还用于:
判断若所述当前请求参数值中不存在所述SQL关键字,则获取下一个数据库访问请求。
7.如权利要求5或者6所述SQL注入检测装置,其特征在于,所述第二判断模块,还用于:
判断若所述完整SQL语句的词法与SQL查询原生语句的词法一致,则允许所述数据库访问请求。
8.如权利要求5或者6所述SQL注入检测装置,其特征在于,所述第二判断模块,还用于:
在获取包含所述SQL关键字的完整SQL语句之后,去掉所述完整SQL语句中的所述SQL关键字。
CN201710574499.0A 2017-07-14 2017-07-14 基于插件的结构化查询语言sql注入检测方法和装置 Pending CN107358098A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710574499.0A CN107358098A (zh) 2017-07-14 2017-07-14 基于插件的结构化查询语言sql注入检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710574499.0A CN107358098A (zh) 2017-07-14 2017-07-14 基于插件的结构化查询语言sql注入检测方法和装置

Publications (1)

Publication Number Publication Date
CN107358098A true CN107358098A (zh) 2017-11-17

Family

ID=60292647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710574499.0A Pending CN107358098A (zh) 2017-07-14 2017-07-14 基于插件的结构化查询语言sql注入检测方法和装置

Country Status (1)

Country Link
CN (1) CN107358098A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063013A (zh) * 2018-07-11 2018-12-21 北京安数云信息技术有限公司 一种数据库行为操作阻断方法和装置
CN112527620A (zh) * 2020-12-24 2021-03-19 北京百度网讯科技有限公司 数据库性能分析方法及装置、电子设备、介质、产品
CN112804261A (zh) * 2021-03-19 2021-05-14 北京安华金和科技有限公司 一种数据转发控制方法、装置、存储介质及电子装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185930A (zh) * 2011-06-09 2011-09-14 北京理工大学 一种sql注入漏洞检测方法
CN102567546A (zh) * 2012-01-18 2012-07-11 北京神州绿盟信息安全科技股份有限公司 一种sql注入检测方法及装置
CN103338208A (zh) * 2013-07-16 2013-10-02 五八同城信息技术有限公司 一种sql注入防御的方法和***
CN103744802A (zh) * 2013-12-20 2014-04-23 北京奇虎科技有限公司 Sql注入攻击的识别方法及装置
CN105160252A (zh) * 2015-08-10 2015-12-16 北京神州绿盟信息安全科技股份有限公司 一种结构化查询语言注入攻击的检测方法及装置
CN106355094A (zh) * 2016-07-08 2017-01-25 耿童童 一种基于语法变换的sql注入攻击防御***及防御方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185930A (zh) * 2011-06-09 2011-09-14 北京理工大学 一种sql注入漏洞检测方法
CN102567546A (zh) * 2012-01-18 2012-07-11 北京神州绿盟信息安全科技股份有限公司 一种sql注入检测方法及装置
CN103338208A (zh) * 2013-07-16 2013-10-02 五八同城信息技术有限公司 一种sql注入防御的方法和***
CN103744802A (zh) * 2013-12-20 2014-04-23 北京奇虎科技有限公司 Sql注入攻击的识别方法及装置
CN105160252A (zh) * 2015-08-10 2015-12-16 北京神州绿盟信息安全科技股份有限公司 一种结构化查询语言注入攻击的检测方法及装置
CN106355094A (zh) * 2016-07-08 2017-01-25 耿童童 一种基于语法变换的sql注入攻击防御***及防御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063013A (zh) * 2018-07-11 2018-12-21 北京安数云信息技术有限公司 一种数据库行为操作阻断方法和装置
CN112527620A (zh) * 2020-12-24 2021-03-19 北京百度网讯科技有限公司 数据库性能分析方法及装置、电子设备、介质、产品
CN112804261A (zh) * 2021-03-19 2021-05-14 北京安华金和科技有限公司 一种数据转发控制方法、装置、存储介质及电子装置

Similar Documents

Publication Publication Date Title
CN104767757B (zh) 基于web业务的多维度安全监测方法和***
CN103559235B (zh) 一种在线社交网络恶意网页检测识别方法
CN112217835B (zh) 报文数据的处理方法、装置、服务器和终端设备
US7917759B2 (en) Identifying an application user as a source of database activity
CN111767573A (zh) 数据库安全管理方法、装置、电子设备及可读存储介质
CN112929390B (zh) 一种基于多策略融合的网络智能监控方法
WO2015179286A1 (en) Polymorphic treatment of data entered at clients
Li et al. Sentinel: securing database from logic flaws in web applications
CN103118035B (zh) 分析网站访问请求参数合法范围的方法及装置
KR100912794B1 (ko) 실시간 웹 서버 해킹 분석 및 홈페이지 위변조 감시를 위한 웹 위협관리 시스템 및 그 방법
CN107832618A (zh) 一种基于细粒度权限控制的sql注入检测***及其方法
CN108337269A (zh) 一种WebShell检测方法
CN107358098A (zh) 基于插件的结构化查询语言sql注入检测方法和装置
CN105678193A (zh) 一种防篡改的处理方法和装置
Zhang et al. An empirical study of web resource manipulation in real-world mobile applications
CN103220277B (zh) 监控跨站脚本攻击的方法、装置及***
CN113961930A (zh) Sql注入漏洞检测方法、装置及电子设备
CN105404796A (zh) 一种JavaScript源文件保护的方法及装置
Joshi et al. Encountering sql injection in web applications
CN107222494A (zh) 一种sql注入攻击防御组件及方法
Mahapatra et al. A survey of sq1 injection countermeasures
KR101161648B1 (ko) 데이터베이스 서버의 조작이력 생성 시스템 및 방법
CN114969450B (zh) 一种用户行为分析方法、装置、设备及存储介质
Ruzhi et al. A database security gateway to the detection of SQL attacks
Melshiyan et al. Information Security Audit Using Open Source Intelligence Methods

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171117