CN108090351B - 用于处理请求消息的方法和装置 - Google Patents
用于处理请求消息的方法和装置 Download PDFInfo
- Publication number
- CN108090351B CN108090351B CN201711341371.6A CN201711341371A CN108090351B CN 108090351 B CN108090351 B CN 108090351B CN 201711341371 A CN201711341371 A CN 201711341371A CN 108090351 B CN108090351 B CN 108090351B
- Authority
- CN
- China
- Prior art keywords
- identification information
- preset
- request message
- database query
- processing
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了用于处理请求消息的方法和装置。该方法的一具体实施方式包括:接收请求消息;获取请求消息中包括的数据库查询语句;生成数据库查询语句的标识信息;响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理请求消息。该实施方式提供了一种基于数据库查询语句的标识信息的请求处理机制,提升了处理请求消息时的安全性。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及用于处理请求消息的方法和装置。
背景技术
随着互联网数据的***性增长,数据库作为互联网数据的存储介质,承担了越来越多的数据和对数据的访问请求。数据库的安全性成为互联网服务的一个重要指标。在日常业务中,存在着大量的黑客组织,通过结构化查询语言(Structured Query Language,SQL)入侵的方式窃取数据库中的敏感数据,造成商业机密和用户相关信息泄露,威胁到产品和用户的信息安全。
发明内容
本申请实施例提出了用于处理请求消息的方法和装置。
第一方面,本申请实施例提供了一种用于处理请求消息的方法,该方法包括:接收请求消息;获取请求消息中包括的数据库查询语句;生成数据库查询语句的标识信息;响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理请求消息。
在一些实施例中,生成数据库查询语句的标识信息,包括:对数据库查询语句进行分词处理生成第一字符串序列;将第一字符串序列中用户输入的参数替换为预设字符生成第二字符串序列;统一第二字符串序列中的分隔符和字母的大小写生成第三字符串序列;计算第三字符串序列的哈希值作为数据库查询语句的标识信息。
在一些实施例中,方法还包括:响应于确定出预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息,将数据库查询语句转换为语法树;确定语法树中预设节点的节点内容是否与预先设置的特征集合中的特征匹配;响应于确定出语法树中预设节点的节点内容与预先设置的特征集合中的特征匹配,终止对请求消息的处理。
在一些实施例中,方法还包括:响应于确定出预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息,确定请求消息包括的语句与预先设置的正则表达式是否匹配,正则表达式用于表征预先设置的特征集合中的特征;响应于确定出请求消息包括的语句与预先设置的正则表达式匹配,终止对请求消息的处理。
在一些实施例中,特征集合中的特征是经由以下步骤生成的:获取历史入侵语句集合;利用机器学习方法对历史入侵语句集合进行特征提取。
第二方面,本申请实施例提供了一种用于处理请求消息的装置,该装置包括:接收单元,用于接收请求消息;获取单元,用于获取请求消息中包括的数据库查询语句;生成单元,用于生成数据库查询语句的标识信息;处理单元,用于响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理请求消息。
在一些实施例中,生成单元,包括:分词子单元,用于对数据库查询语句进行分词处理生成第一字符串序列;替换子单元,用于将第一字符串序列中用户输入的参数替换为预设字符生成第二字符串序列;统一子单元,用于统一第二字符串序列中的分隔符和字母的大小写生成第三字符串序列;计算子单元,用于计算第三字符串序列的哈希值作为数据库查询语句的标识信息。
在一些实施例中,装置还包括:转换单元,用于响应于确定出预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息,将数据库查询语句转换为语法树;第一确定单元,用于确定语法树中预设节点的节点内容是否与预先设置的特征集合中的特征匹配;第一终止单元,用于响应于确定出语法树中预设节点的节点内容与预先设置的特征集合中的特征匹配,终止对请求消息的处理。
在一些实施例中,装置还包括:第二确定单元,用于响应于确定出预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息,确定请求消息包括的语句与预先设置的正则表达式是否匹配,正则表达式用于表征预先设置的特征集合中的特征;第二终止单元,用于响应于确定出请求消息包括的语句与预先设置的正则表达式匹配,终止对请求消息的处理。
在一些实施例中,装置还包括特征生成单元,特征生成单元,用于:获取历史入侵语句集合;利用机器学习方法对历史入侵语句集合进行特征提取。
第三方面,本申请实施例提供了一种设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得上述一个或多个处理器实现如第一方面上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如第一方面上述的方法。
本申请实施例提供的用于处理请求消息的方法和装置,通过接收请求消息,并获取请求消息中包括的数据库查询语句,而后生成数据库查询语句的标识信息,最后响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理请求消息,从而提供了一种基于数据库查询语句的标识信息的请求处理机制,提升了处理请求消息时的安全性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性***架构图;
图2是根据本申请的用于处理请求消息的方法的一个实施例的流程图;
图3是根据本申请的用于处理请求消息的方法的应用场景的一个示意图;
图4是根据本申请的用于处理请求消息的方法的又一个实施例的流程图;
图5是根据本申请的用于处理请求消息的装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的服务器的计算机***的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于处理请求消息的方法或用于处理请求消息的装置的实施例的示例性***架构100。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105、106。网络104用以在终端设备101、102、103和服务器105、106之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户110可以使用终端设备101、102、103通过网络104与服务器105、106交互,以接收或发送数据等。终端设备101、102、103上可以安装有各种应用,例如购物类应用、地图类应用、支付类应用、社交类应用、网页浏览器应用、搜索引擎类应用、手机助手类应用等。
终端设备101、102、103可以是具有显示屏并且支持数据通信功能的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。用户可以通过终端设备101、102、103向服务器发送请求消息。
服务器105、106可以是提供各种服务的服务器,例如对终端设备101、102、103上安装的应用提供支持的后台服务器,服务器105、106可以接收终端设备101、102、103发送的请求消息;获取请求消息中包括的数据库查询语句;生成数据库查询语句的标识信息;响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理请求消息。
需要说明的是,本申请实施例所提供的用于处理请求消息的方法可以由服务器105、106执行,相应地,用于处理请求消息的装置可以设置于服务器105、106中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的用于处理请求消息的方法的一个实施例的流程200。该用于处理请求消息的方法,包括以下步骤:
步骤201,接收请求消息。
在本实施例中,用于处理请求消息的方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或无线连接方式接收请求消息。请求消息可以是从客户端到服务器端的请求消息,可以包括对资源的请求方法、资源的标识符及使用的协议等,具体可以使用超文本传输协议(HTTP,HyperText Transfer Protocol)等协议。
步骤202,获取请求消息中包括的数据库查询语句。
在本实施例中,上述电子设备可以获取步骤201中接收的请求消息中包括的数据库查询语句。数据库查询语句可以是SQL语句或符合其他数据库语法规范的语句。以SQL语句为例,SQL入侵是通过改变SQL的结构,增加攻击特征来获取数据库的敏感信息。由于SQL本身具备丰富的交互式语言和复杂的协议,攻击特征是非常复杂,因此需要对请求消息中包括的SQL语句进行解析,准确识别请求是否存在安全威胁。
步骤203,生成数据库查询语句的标识信息。
在本实施例中,上述电子设备可以生成步骤202中获取的数据库查询语句的标识信息。查询语句的标识信息可以用于表征查询语句中与查询语句是否是入侵语句密切相关的特征,标识信息的生成规则可以根据具体的业务需要进行设置,例如,标识信息中需要包括函数名称,对于用户输入的部分可统一替换成同一字符。
在本实施例的一些可选实现方式中,生成数据库查询语句的标识信息,包括:对数据库查询语句进行分词处理生成第一字符串序列;将第一字符串序列中用户输入的参数替换为预设字符生成第二字符串序列;统一第二字符串序列中的分隔符和字母的大小写生成第三字符串序列;计算第三字符串序列的哈希值作为数据库查询语句的标识信息。
在本实施例的一些可选实现方式中,以SQL语句为例,可以首先对SQL语句进行分词处理,而后将用户输入参数统一替换为问号,并规则化空格、制表位等分隔符,例如将一个或多个相邻的空格、制表位同一转换为一个空格,针对SQL中的操作符in,可以将in查询相关的多个值替换为一个问号;同时忽略大小写,最后调用哈希算法,计算规则化后的字符串签名。
步骤204,响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理请求消息。
在本实施例中,上述电子设备可以响应于确定出预先设置的标识信息集合中包括与步骤203中生成的标识信息匹配的标识信息,处理请求消息。标识信息的匹配可以是标识信息部分或完全相同,标识信息之间的相似度超过预设阈值,具体可以根据业务需要确定具体的匹配规则。预先设置的标识信息集合可以是通过离线日志分析生成的白名单,数据库防火墙可以通过配置热加载的方式获取白名单。白名单的生成可以是通过机器学习方法通过对历史数据库查询语句的聚类,也可以由业务人员确定。
在本实施例的一些可选实现方式中,方法还包括:响应于确定出预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息,确定请求消息包括的语句与预先设置的正则表达式是否匹配,正则表达式用于表征预先设置的特征集合中的特征;响应于确定出请求消息包括的语句与预先设置的正则表达式匹配,终止对请求消息的处理。
在本实施例的一些可选实现方式中,特征集合中的特征是经由以下步骤生成的:获取历史入侵语句集合;利用机器学习方法对历史入侵语句集合进行特征提取。可以通过机器学习邻域常用的聚类方法进行特征提取,也可以通过深度学习方法进行特征提取。
在本实施例的一些可选实现方式中,特征集合中的特征也可以通过行为分析确定。例如,元信息是SQL入侵的攻击重点,它包含了数据库的库表结构、账户信息、物理存储方式等核心的敏感信息。在数据获取过程中,绝大部分的攻击方式是先获取数据的元信息,成功之后根据数据库元信息进一步获取数据库的敏感数据。当服务器向用户提供有结果页面、零结果页面和错误页面中至少两个页面时,攻击方一般通过回显注入方式攻击数据库。当服务器只提供一种页面,攻击方一般采用时间盲注的方式窃取敏感数据。根据上述行为分析,结合数据库查询语句的语法特征,按照特征危害程度和识别难度建立可以分级重点防御的特征集合,具体可分为:元信息特征集合、区分度高的注入特征集合、区分度低的注入特征集合以及针对不同语法规范的特征集合。
在本实施例的一些可选实现方式中,还可以对历史请求消息进行离线检测,离线检测与在线检测相比,在线检测要求检测准确率最大化,即误伤最小,可以出现漏报,离线检测要求检出率最大化,即漏报最小,可以出现少量误伤。同时在线检测对检测耗时有一定要求。在线检测加载的特征是特征库的子集,例如元信息特征集合、区分度高的注入特征集合,离线检测加载的特征是特征库的全集。通过在线和离线的配合,可以使入侵防御***的检测准确率和检出率达到最优。
本申请的上述实施例提供的方法通过接收请求消息;获取请求消息中包括的数据库查询语句;生成数据库查询语句的标识信息;响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理请求消息,从而提供了一种基于数据库查询语句的标识信息的请求处理机制,提升了处理请求消息时的安全性。
继续参见图3,图3是根据本实施例的用于处理请求消息的方法的应用场景的一个示意图。在图3的应用场景中,运行有请求消息处理方法的服务器301接收到正常用户通过终端302发出的包括正常的SQL语句的请求消息,和发起SQL注入攻击的服务器303发出的请求消息;在对所接收的请求消息进行解析,并根据请求消息中包括的数据库查询语句确定出了攻击请求和非攻击请求后,处理了非攻击请求,针对非攻击请求返回了响应消息,终止了对非攻击请求的处理。
进一步参考图4,其示出了用于处理请求消息的方法的又一个实施例的流程400。该用于处理请求消息的方法的流程400,包括以下步骤:
步骤401,接收请求消息。
在本实施例中,用于处理请求消息的方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或无线连接方式接收请求消息。
步骤402,获取请求消息中包括的数据库查询语句。
在本实施例中,上述电子设备可以获取步骤401中接收的请求消息中包括的数据库查询语句。
步骤403,生成数据库查询语句的标识信息。
在本实施例中,上述电子设备可以生成步骤402中获取的数据库查询语句的标识信息。
步骤404,响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理请求消息。
在本实施例中,上述电子设备可以响应于确定出预先设置的标识信息集合中包括与步骤403中生成的标识信息匹配的标识信息,处理请求消息。
步骤405,响应于确定出预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息,将数据库查询语句转换为语法树。
在本实施例中,上述电子设备可以响应于确定出预先设置的标识信息集合中不包括与步骤403中生成的标识信息匹配的标识信息,将数据库查询语句转换为语法树。语法树是句子结构的图形表示,它代表了句子的推导结果,有利于理解句子语法结构的层次。以SQL语句为例,上述电子设备可以将查询请求依次通过词法分析生成分词,而后将分词按照SQL语法生成语法树。
步骤406,确定语法树中预设节点的节点内容是否与预先设置的特征集合中的特征匹配。
在本实施例中,上述电子设备可以确定步骤405中生成的语法树中预设节点的节点内容是否与预先设置的特征集合中的特征匹配。上述电子设备可以在生成语法树的过程中,按照预先设置的特征集合中的特征,进行分析匹配,判断是否存在入侵特征,特征集合中的特征可以包括特征值和特征值相关的语义信息。部分注入特征,例如一些涉及函数的特征,和正常业务请求存在一定的重叠,直接利用特征匹配容易产生误伤。可以通过采用机器学习的方式,抽取注入SQL集合中敏感函数,序列化并进行聚类,形成敏感函数特征集合。通过敏感函数特征集合进行检测,可以提高检测非正常SQL语句的检出率和准确率的比例。
步骤407,响应于确定出语法树中预设节点的节点内容与预先设置的特征集合中的特征匹配,终止对请求消息的处理。
在本实施例中,上述电子设备可以响应于步骤406中确定出语法树中预设节点的节点内容与预先设置的特征集合中的特征匹配,终止对请求消息的处理。预设节点可以根据实际需要进行设置,例如,预设节点可以是函数节点。
在本实施例中,步骤401、步骤402、步骤403、步骤404的操作与步骤201、步骤402、步骤203、步骤204的操作基本相同,在此不再赘述。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于处理请求消息的方法的流程400中在确定出预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息时,将数据库查询语句转换为语法树,根据语法树中预设节点的节点内容确定是否对请求消息进行处理,由此,本实施例描述的方案进一步丰富了请求处理机制,提升了安全性。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于处理请求消息的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于处理请求消息的装置500包括:接收单元501、获取单元502、生成单元503、处理单元504。其中,接收单元501,用于接收请求消息;获取单元502,用于获取请求消息中包括的数据库查询语句;生成单元503,用于生成数据库查询语句的标识信息;处理单元504,用于响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理请求消息。
在本实施例中,用于处理请求消息的装置500的接收单元501、获取单元502、生成单元503、处理单元504的具体处理可以参考图2对应实施例中的步骤201、步骤202、步骤203和步骤204。
在本实施例的一些可选实现方式中,生成单元503,包括:分词子单元(图中未示出),用于对数据库查询语句进行分词处理生成第一字符串序列;替换子单元(图中未示出),用于将第一字符串序列中用户输入的参数替换为预设字符生成第二字符串序列;统一子单元(图中未示出),用于统一第二字符串序列中的分隔符和字母的大小写生成第三字符串序列;计算子单元(图中未示出),用于计算第三字符串序列的哈希值作为数据库查询语句的标识信息。
在本实施例的一些可选实现方式中,装置还包括:转换单元(图中未示出),用于响应于确定出预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息,将数据库查询语句转换为语法树;第一确定单元(图中未示出),用于确定语法树中预定节点的节点内容是否与预先设置的特征集合中的特征匹配;第一终止单元(图中未示出),用于响应于确定出语法树中预定节点的节点内容与预先设置的特征集合中的特征匹配,终止对请求消息的处理。
在本实施例的一些可选实现方式中,装置还包括:第二确定单元(图中未示出),用于响应于确定出预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息,确定请求消息包括的语句与预先设置的正则表达式是否匹配,正则表达式用于表征预先设置的特征集合中的特征;第二终止单元(图中未示出),用于响应于确定出请求消息包括的语句与预先设置的正则表达式匹配,终止对请求消息的处理。
在本实施例的一些可选实现方式中,装置还包括特征生成单元503,特征生成单元503,用于:获取历史入侵语句集合;利用机器学习方法对历史入侵语句集合进行特征提取。
本申请的上述实施例提供的装置,通过接收请求消息;获取请求消息中包括的数据库查询语句;生成数据库查询语句的标识信息;响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理请求消息,从而提供了一种基于数据库查询语句的标识信息的请求处理机制,提升了处理请求消息时的安全性。
下面参考图6,其示出了适于用来实现本申请实施例的电子设备的计算机***600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、获取单元、生成单元和处理单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“用于接收请求消息的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:接收请求消息;获取请求消息中包括的数据库查询语句;生成数据库查询语句的标识信息;响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理请求消息。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种用于处理请求消息的方法,包括:
接收请求消息;
获取所述请求消息中包括的数据库查询语句;
生成所述数据库查询语句的标识信息;
响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理所述请求消息;所述标识信息集合是通过机器学习对历史数据库查询语句进行聚类生成的白名单;
响应于确定出所述预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息,将所述数据库查询语句转换为语法树;确定所述语法树中预设节点的节点内容是否与预先设置的特征集合中的特征匹配,其中,所述预先设置的特征集合的全集采用离线检测加载的方式进行匹配,所述预先设置的特征集合的子集采用在线检测加载的方式进行匹配;响应于确定出所述语法树中预设节点的节点内容与预先设置的特征集合中的特征匹配,终止对所述请求消息的处理;其中,所述预先设置的特征集合包括元信息特征集合、区分度不同的注入特征集合以及针对不同语法规范的特征集合。
2.根据权利要求1所述的方法,其中,所述生成所述数据库查询语句的标识信息,包括:
对所述数据库查询语句进行分词处理生成第一字符串序列;
将所述第一字符串序列中用户输入的参数替换为预设字符生成第二字符串序列;
统一所述第二字符串序列中的分隔符和字母的大小写生成第三字符串序列;
计算所述第三字符串序列的哈希值作为所述数据库查询语句的标识信息。
3.根据权利要求1所述的方法,其中,所述方法还包括:
响应于确定出预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息,确定所述请求消息包括的语句与预先设置的正则表达式是否匹配,所述正则表达式用于表征预先设置的特征集合中的特征;
响应于确定出所述请求消息包括的语句与预先设置的正则表达式匹配,终止对所述请求消息的处理。
4.根据权利要求1所述的方法,其中,所述特征集合中的特征是经由以下步骤生成的:
获取历史入侵语句集合;
利用机器学习方法对所述历史入侵语句集合进行特征提取。
5.一种用于处理请求消息的装置,包括:
接收单元,用于接收请求消息;
获取单元,用于获取所述请求消息中包括的数据库查询语句;
生成单元,用于生成所述数据库查询语句的标识信息;
处理单元,用于响应于确定出预先设置的标识信息集合中包括与所生成的标识信息匹配的标识信息,处理所述请求消息;所述标识信息集合是通过机器学习对历史数据库查询语句进行聚类生成的白名单;
转换单元,用于响应于确定出预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息,将所述数据库查询语句转换为语法树;
第一确定单元,用于确定所述语法树中预设节点的节点内容是否与预先设置的特征集合中的特征匹配,其中,所述预先设置的特征集合包括元信息特征集合、区分度不同的注入特征集合以及针对不同语法规范的特征集合;所述预先设置的特征集合的全集采用离线检测加载的方式进行匹配,所述预先设置的特征集合的子集采用在线检测加载的方式进行匹配;
第一终止单元,用于响应于确定出所述语法树中预设节点的节点内容与预先设置的特征集合中的特征匹配,终止对所述请求消息的处理。
6.根据权利要求5所述的装置,其中,所述生成单元,包括:
分词子单元,用于对所述数据库查询语句进行分词处理生成第一字符串序列;
替换子单元,用于将所述第一字符串序列中用户输入的参数替换为预设字符生成第二字符串序列;
统一子单元,用于统一所述第二字符串序列中的分隔符和字母的大小写生成第三字符串序列;
计算子单元,用于计算所述第三字符串序列的哈希值作为所述数据库查询语句的标识信息。
7.根据权利要求5所述的装置,其中,所述装置还包括:
第二确定单元,用于响应于确定出预先设置的标识信息集合中不包括与所生成的标识信息匹配的标识信息,确定所述请求消息包括的语句与预先设置的正则表达式是否匹配,所述正则表达式用于表征预先设置的特征集合中的特征;
第二终止单元,用于响应于确定出所述请求消息包括的语句与预先设置的正则表达式匹配,终止对所述请求消息的处理。
8.根据权利要求5所述的装置,其中,所述装置还包括特征生成单元,所述特征生成单元,用于:
获取历史入侵语句集合;
利用机器学习方法对所述历史入侵语句集合进行特征提取。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-4中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711341371.6A CN108090351B (zh) | 2017-12-14 | 2017-12-14 | 用于处理请求消息的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711341371.6A CN108090351B (zh) | 2017-12-14 | 2017-12-14 | 用于处理请求消息的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108090351A CN108090351A (zh) | 2018-05-29 |
CN108090351B true CN108090351B (zh) | 2022-03-08 |
Family
ID=62176346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711341371.6A Active CN108090351B (zh) | 2017-12-14 | 2017-12-14 | 用于处理请求消息的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108090351B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959965B (zh) * | 2018-07-06 | 2020-01-17 | 北京天空卫士网络安全技术有限公司 | 数据合规性审查方法和装置 |
CN109241097A (zh) * | 2018-08-02 | 2019-01-18 | 平安科技(深圳)有限公司 | 一种流程的配置方法、计算机可读存储介质及终端设备 |
CN110912720B (zh) * | 2018-09-14 | 2023-05-30 | 北京微播视界科技有限公司 | 信息生成方法和装置 |
CN109582691B (zh) * | 2018-11-15 | 2023-04-07 | 百度在线网络技术(北京)有限公司 | 用于控制数据查询的方法和装置 |
CN109657174B (zh) * | 2018-12-25 | 2023-06-02 | 北京百度网讯科技有限公司 | 用于更新数据的方法和装置 |
CN111966709A (zh) * | 2020-09-08 | 2020-11-20 | 支付宝(杭州)信息技术有限公司 | 一种数据查询方法、装置及电子设备 |
CN112181990A (zh) * | 2020-10-15 | 2021-01-05 | 金蝶云科技有限公司 | 一种临时表重用的方法及装置 |
CN112966101B (zh) * | 2021-02-07 | 2024-06-18 | 白腊梅 | 语句聚类方法、事务聚类方法、语句聚类装置与事务聚类装置 |
CN115314255B (zh) * | 2022-07-11 | 2023-12-29 | 深信服科技股份有限公司 | 攻击结果的检测方法、装置、计算机设备和存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101448007A (zh) * | 2008-12-31 | 2009-06-03 | 中国电力科学研究院 | 一种结构化查询语言sql攻击防御*** |
CN102682047A (zh) * | 2011-10-18 | 2012-09-19 | 国网电力科学研究院 | 一种混合的sql注入防护方法 |
CN105704146A (zh) * | 2016-03-18 | 2016-06-22 | 四川长虹电器股份有限公司 | Sql防注入的***与方法 |
CN105959324A (zh) * | 2016-07-15 | 2016-09-21 | 江苏博智软件科技有限公司 | 基于正则匹配的网络攻击检测方法及装置 |
CN106355094A (zh) * | 2016-07-08 | 2017-01-25 | 耿童童 | 一种基于语法变换的sql注入攻击防御***及防御方法 |
CN106357696A (zh) * | 2016-11-14 | 2017-01-25 | 北京神州绿盟信息安全科技股份有限公司 | 一种sql注入攻击检测方法及*** |
CN107292167A (zh) * | 2017-06-27 | 2017-10-24 | 北京计算机技术及应用研究所 | 基于精简语法树的sql语句安全检测方法 |
CN107292170A (zh) * | 2016-04-05 | 2017-10-24 | 阿里巴巴集团控股有限公司 | Sql注入攻击的检测方法及装置、*** |
CN107451153A (zh) * | 2016-05-31 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 输出结构化查询语句的方法和装置 |
CN107451473A (zh) * | 2017-07-27 | 2017-12-08 | 杭州美创科技有限公司 | 基于特征模式识别的sql注入检测方法 |
CN107463845A (zh) * | 2017-07-14 | 2017-12-12 | 上海斐讯数据通信技术有限公司 | 一种sql注入攻击的检测方法、***和计算机处理设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9158922B2 (en) * | 2013-05-29 | 2015-10-13 | Lucent Sky Corporation | Method, system, and computer-readable medium for automatically mitigating vulnerabilities in source code |
WO2016186975A1 (en) * | 2015-05-15 | 2016-11-24 | Virsec Systems, Inc. | Detection of sql injection attacks |
-
2017
- 2017-12-14 CN CN201711341371.6A patent/CN108090351B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101448007A (zh) * | 2008-12-31 | 2009-06-03 | 中国电力科学研究院 | 一种结构化查询语言sql攻击防御*** |
CN102682047A (zh) * | 2011-10-18 | 2012-09-19 | 国网电力科学研究院 | 一种混合的sql注入防护方法 |
CN105704146A (zh) * | 2016-03-18 | 2016-06-22 | 四川长虹电器股份有限公司 | Sql防注入的***与方法 |
CN107292170A (zh) * | 2016-04-05 | 2017-10-24 | 阿里巴巴集团控股有限公司 | Sql注入攻击的检测方法及装置、*** |
CN107451153A (zh) * | 2016-05-31 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 输出结构化查询语句的方法和装置 |
CN106355094A (zh) * | 2016-07-08 | 2017-01-25 | 耿童童 | 一种基于语法变换的sql注入攻击防御***及防御方法 |
CN105959324A (zh) * | 2016-07-15 | 2016-09-21 | 江苏博智软件科技有限公司 | 基于正则匹配的网络攻击检测方法及装置 |
CN106357696A (zh) * | 2016-11-14 | 2017-01-25 | 北京神州绿盟信息安全科技股份有限公司 | 一种sql注入攻击检测方法及*** |
CN107292167A (zh) * | 2017-06-27 | 2017-10-24 | 北京计算机技术及应用研究所 | 基于精简语法树的sql语句安全检测方法 |
CN107463845A (zh) * | 2017-07-14 | 2017-12-12 | 上海斐讯数据通信技术有限公司 | 一种sql注入攻击的检测方法、***和计算机处理设备 |
CN107451473A (zh) * | 2017-07-27 | 2017-12-08 | 杭州美创科技有限公司 | 基于特征模式识别的sql注入检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108090351A (zh) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108090351B (zh) | 用于处理请求消息的方法和装置 | |
US9405910B2 (en) | Automatic library detection | |
US20180336271A1 (en) | Method for Dynamically Assigning Question Priority Based on Question Extraction and Domain Dictionary | |
US10303689B2 (en) | Answering natural language table queries through semantic table representation | |
US11716349B2 (en) | Machine learning detection of database injection attacks | |
CN107506256B (zh) | 一种崩溃数据监控的方法和装置 | |
US10102246B2 (en) | Natural language consumer segmentation | |
WO2023024975A1 (zh) | 文本处理方法、装置和电子设备 | |
US9690862B2 (en) | Realtime ingestion via multi-corpus knowledge base with weighting | |
CN111314388B (zh) | 用于检测sql注入的方法和装置 | |
US10839168B2 (en) | Dynamic automation of pipeline creation | |
RU2701040C1 (ru) | Способ и вычислительное устройство для информирования о вредоносных веб-ресурсах | |
CN110618999A (zh) | 数据的查询方法及装置、计算机存储介质、电子设备 | |
CN112328486A (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN113282591B (zh) | 权限过滤方法、装置、计算机设备及存储介质 | |
US11361031B2 (en) | Dynamic linguistic assessment and measurement | |
CN114386408A (zh) | 政务敏感信息识别方法、装置、设备、介质和程序产品 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN111984797A (zh) | 客户身份识别装置及方法 | |
CN115203674A (zh) | 一种应用程序自动登录方法、***、装置及存储介质 | |
CN113779198A (zh) | 基于人工智能的电子名片生成方法、装置、设备及介质 | |
CN112926295A (zh) | 模型推荐方法和装置 | |
CN115758368B (zh) | 恶意破解软件的预测方法、装置、电子设备和存储介质 | |
US11636391B2 (en) | Automatic combinatoric feature generation for enhanced machine learning | |
US20220207238A1 (en) | Methods and system for the extraction of properties of variables using automatically detected variable semantics and other resources |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |