CN104834599A - Web安全检测方法和装置 - Google Patents
Web安全检测方法和装置 Download PDFInfo
- Publication number
- CN104834599A CN104834599A CN201510202647.7A CN201510202647A CN104834599A CN 104834599 A CN104834599 A CN 104834599A CN 201510202647 A CN201510202647 A CN 201510202647A CN 104834599 A CN104834599 A CN 104834599A
- Authority
- CN
- China
- Prior art keywords
- detection
- task
- information
- task information
- web safety
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种WEB安全检测方法和装置,其中的方法包括:将WEB安全检测前端提交的检测任务信息存储于WEB安全检测数据集合中;从WEB安全检测数据集合中读取待处理的至少一条检测任务信息,并将读取的检测任务信息写入缓存数据集合中;针对读取的各条检测任务信息均产生多个检测子任务,将各检测子任务分别分配给WEB安全检测后端的集群系统;将集群系统执行检测子任务过程中提交的信息写入缓存数据集合中;在一条检测任务信息对应的各检测子任务执行完成后,将该条检测任务信息在缓存数据集合中的检测结果存储于WEB安全检测数据集合中。本发明提供的技术方案提高了WEB安全检测的安全性,并提高了WEB安全检测的效率。
Description
技术领域
本发明涉及互联网技术领域,尤其是涉及一种WEB安全检测方法以及WEB安全检测装置。
背景技术
WEB安全检测通常是指检测WEB应用程序的安全服务性能,并识别WEB应用程序潜在的安全性缺陷的过程。
WEB安全检测通常会对WEB应用程序的多个方面分别进行检测,例如对WEB应用程序的部署与基础结构方面、输入验证方面、身份验证方面、授权方面、配置管理方面、敏感数据方面、会话管理方面以及日志记录方面等分别进行检测。
发明人在实现本发明过程中发现,在实现WEB安全检测过程中,尤其是在面对为数众多的待检测WEB应用的情况下,如何安全且高效的对多个WEB应用进行安全检测是一个值得关注的问题。
发明内容
本发明的目的是提供一种WEB安全检测方法和装置。
根据本发明的一个方面,提供一种WEB安全检测方法,该方法包括以下步骤:将WEB安全检测前端提交的检测任务信息存储于WEB安全检测数据集合中;从WEB安全检测数据集合中读取待处理的至少一条检测任务信息,并将所述读取的检测任务信息写入缓存数据集合中;针对读取的各条检测任务信息均产生多个检测子任务,将各检测子任务分别分配给WEB安全检测后端的集群系统;将集群系统执行检测子任务过程中提交的信息写入缓存数据集合中;在一条检测任务信息对应的各检测子任务执行完成后,将该条检测任务信息在所述缓存数据集合中的检测结果存储于所述WEB安全检测数据集合中。
根据本发明的另一个方面,还提供了一种WEB安全检测装置,该装置主要包括:第一数据处理模块,适于将WEB安全检测前端提交的检测任务信息存储于WEB安全检测数据集合中;第二数据处理模块,适于从所述WEB安全检测数据集合中读取待处理的至少一条检测任务信息,并将所述读取的检测任务信息写入缓存数据集合中;检测任务分解模块,适于针对读取的各条检测任务信息均产生多个检测子任务;子任务调度模块,适于将各检测子任务分别分配给WEB安全检测后端的集群系统;第三数据处理模块,适于将集群系统执行检测子任务过程中提交的信息写入缓存数据集合中;第四数据处理模块,适于在一条检测任务信息对应的各检测子任务执行完成后,将该条检测任务信息在所述缓存数据集合中的检测结果存储于所述WEB安全检测数据集合中。
与现有技术相比,本发明具有以下优点:本发明实施例提供的技术方案其实质上是在WEB安全检测前端和WEB安全检测后端之间形成了一个API(应用程序编程接口),该API使WEB安全检测前端和WEB安全检测后端均不会直接与WEB安全检测的数据存储部分(即WEB安全检测数据集合)进行数据交互,有效保证了WEB安全检测的数据安全性;同时,本实施例通过从WEB安全检测的数据存储部分读取多条检测任务信息,并针对每一条检测任务信息分别产生多个检测子任务,且不同检测任务信息对应的多个检测子任务被分配给WEB安全检测后端的集群系统进行处理,不仅可以实现针对不同检测任务信息的WEB安全检测并行处理,还可以实现同一个检测任务信息对应的不同检测子任务的并行处理,使WEB安全检测的多任务调度实现方式具有灵活性;从而本发明实施例提供的技术方案提高了WEB安全检测的安全性,并提高了WEB安全检测的效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一个实施例的WEB安全检测方法的流程示意图;
图2为本发明另一个实施例的WEB安全检测方法中的接口示意图;
图3为本发明另一个实施例的WEB安全检测方法的示意图;
图4为本发明再一个实施例的WEB安全检测装置的结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、被并发地或者同时被实施。此外,各项操作的顺序可以被重新安排。当其操作完成时,所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。另外,所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“计算机设备”,也可以称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机以及PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中的一些是通过流程图示出的)通常可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或者计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构以及功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或者“耦合”到另一个单元时,其可以直接连接或者耦合到所述另一单元,或者可存在一中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在一中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他类似词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则,这里所使用的单数形式“一个”或者“一项”等还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或者添加一个或者更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明作进一步详细描述。
实施例一、WEB安全检测方法。
本实施例所涉及的WEB安全检测存在WEB安全检测前端以及WEB安全检测后端两部分,本实施例提供的技术方案其实质上是在WEB安全检测前端和WEB安全检测后端之间形成了一个API(应用程序编程接口,Application Programming Interface),该API使WEB安全检测前端和WEB安全检测后端都不能够直接与WEB安全检测数据集合进行数据交互,而只能通过该API与WEB安全检测数据集合进行数据交互;而且,该API可以实现对不同检测任务信息对应的各检测任务、检测任务中的各检测子任务以及WEB安全检测后端的集群系统均进行调度。
图1为本发明一个实施例的WEB安全检测方法的流程示意图。
本实施例的方法通常通过数据处理设备来实现;且该数据处理设备通常包括但不限于PC(Personal Computer,个人计算机,如台式计算机或者笔记型计算机等)以及服务器(如nginx服务器)等。
需要说明的是,本实施例中的数据处理设备仅为举例,其他现有的或今后可能出现的可接入互联网的网络设备如可适用于本发明,也应该包含在本发明保护范围以内,并以引用方式包含于此。
在图1中,S100、将WEB安全检测前端提交的检测任务信息存储于WEB安全检测数据集合中。
具体的,本实施例中的检测任务信息是对WEB安全检测任务的描述,该检测任务信息可以表示出对WEB安全检测对象所执行的WEB安全检测;其中的WEB安全检测对象可以使用能够唯一标识出WEB应用的信息来表示;在对所有的WEB安全检测对象都执行相同的WEB安全检测的情况下,检测任务信息中可以缺省对所执行的WEB安全检测的描述信息。由此可知,本实施例的检测任务信息可以包括能够标识出WEB应用的信息以及所执行的WEB安全检测的描述信息,也可以不包括所执行的WEB安全检测的描述信息而仅包括能够标识出WEB应用的信息。上述能够唯一标识出WEB应用的信息可以采用WEB应用的URL(Uniform Resoure Locator,统一资源定位符)等。另外,本实施例中的检测任务信息还可以包括其他信息,如执行WEB安全检测的时间或者周期性执行WEB安全检测的时间间隔或者修复后再次进行WEB安全检测的信息等。
上述所执行的WEB安全检测的描述信息、执行WEB安全检测的时间、周期性执行WEB安全检测的时间间隔以及修复后再次进行WEB安全检测的信息等可以称为WEB安全检测配置信息。本实施例不限制检测任务信息所包含的具体内容。
本实施例的WEB安全检测前端可以通过调用创建任务接口来提交一条或者多条检测任务信息,例如,WEB安全检测前端为用户提供WEB安全检测页面,该检测页面中包含有允许用户输入检测任务信息的区域,如WEB标识栏等,用户在相应的区域(如WEB标识栏)中输入了检测任务信息(如待检测WEB应用的URL)后,可以通过鼠标点击检测按钮/提交按钮或者回车键等方式通知WEB安全检测前端检测任务信息输入完成,WEB安全检测前端在接收到该通知后,调用创建任务接口,以便于向本实施例所形成的API提交用户输入的检测任务信息,如将包含有待检测WEB应用的URL的检测任务信息提交给本实施例所形成的API。
本实施例中的WEB安全检测前端所调用的创建任务接口可以为创建单次检测任务接口,也可以为创建批量检测任务接口,还可以为创建循环检测任务接口。创建单次检测任务接口对应于一个WEB安全检测任务,即创建单次检测任务接口主要用于提交单个WEB安全检测的检测任务信息。创建批量检测任务接口对应于多个WEB安全检测任务,即创建批量检测任务接口主要用于提交多个WEB安全检测的检测任务信息(即多条检测任务信息)。创建循环检测任务接口对应于周期性WEB安全检测任务,即创建循环检测任务接口主要用于提交周期性WEB安全检测的检测任务信息(如包含有URL以及周期性执行WEB安全检测的时间间隔的检测任务信息)。
在接收到WEB安全检测前端通过调用创建单次检测任务接口提交的一条检测任务信息时,将该条包含有一条URL的检测任务信息存储于WEB安全检测数据集合中;在接收到WEB安全检测前端通过调用创建批量检测任务接口提交的多条检测任务信息时,将所有的检测任务信息均存储于WEB安全检测数据集合中;在接收到WEB安全检测前端通过调用创建循环检测任务接口提交的一条检测任务信息时,将该条包含有一条URL和一条循环配置信息的检测任务信息存储于WEB安全检测数据集合中。
本实施例中的WEB安全检测数据集合主要用于存储WEB安全检测前端提交的检测任务信息以及WEB安全检测后端提交的WEB检测结果,检测任务信息以及WEB检测结果应对应存储,如检测任务信息以及WEB检测结果存储在一条记录中。
本实施例的WEB安全检测数据集合中的每一条检测任务信息均可以具有三种状态,即未处理状态、处理中状态(即正在处理状态)以及处理完成状态,以表示出WEB安全检测后端针对该检测任务信息的WEB安全检测执行情况。在检测任务信息被标识有状态的情况下,本实施例在将检测任务信息存储于WEB安全检测数据集合中的过程中,可以在WEB安全检测数据集合中为该条检测任务信息设置状态,如将该条检测任务信息的状态设置为未处理状态,在存储过程中不执行设置检测任务信息的状态的情况下,该条检测任务信息的状态会被设置为缺省状态,且该缺省状态为未处理状态。
本实施例的WEB安全检测数据集合通常可以利用基于MYSQL(关系型数据库管理系统)的数据库来实现。
需要说明的是,本实施例的WEB安全检测数据集合中的每一条检测任务信息均可以具有更多种状态,如还可以具有删除状态。
S110、从上述WEB安全检测数据集合中读取待处理的至少一条检测任务信息,并将读取的检测任务信息写入缓存数据集合中。
具体的,在WEB安全检测数据集合中的各检测任务信息设置有状态的情况下,本实施例可以根据各检测任务信息的状态来判断一条检测任务信息是否为待处理的检测任务信息,如将标识为未处理状态的检测任务信息确定为待处理的检测任务信息;本实施例也可以采用其他方式来确定待处理的检测任务信息,如根据当前记录的已经被读取的检测任务信息的序列号来判断一条检测任务信息是否为待处理的检测任务信息。
本实施例可以在本读取步骤中从WEB安全检测数据集合中读取一条检测任务信息,也可以在本读取步骤中从WEB安全检测数据集合中读取多条检测任务信息。在从WEB安全检测数据集合中读取出检测任务信息时,应将WEB安全检测数据集合中的被读取出的检测任务信息的状态设置为正在处理状态,以避免该检测任务信息被再次读取。读取出的检测任务信息被写入缓存数据集合中。
本实施例中的缓存数据集合主要用于实现数据的缓存,如存储正在被处理的检测任务信息以及集群系统在处理过程中返回的数据(如中间数据集以及检测结果等)等。缓存数据集合中存储的数据通常可以采用json格式,从而应将从WEB安全检测数据集合中读取出的检测任务信息转换为json格式的检测任务信息(如通过调用数据格式转换接口将读取出的检测任务信息转换为json格式的检测任务信息),然后,将json格式的检测任务信息存储于在缓存数据集合中。
本实施例的缓存数据集合通常可以利用基于redis的数据库来实现。另外,本实施例可以通过获取任务接口从WEB安全检测数据集合中读取检测任务信息。
S120、针对读取的各条检测任务信息均产生多个检测子任务,并将各检测子任务分别分配给WEB安全检测后端的集群系统。
具体的,本实施例针对检测任务信息所实施的WEB安全检测包括多种不同的检测,即包括多个检测子任务。一个完整的WEB安全检测所包括的检测子任务的数量以及种类等是预先设定的,也就是说,本实施例的API是根据预先设置的WEB安全检测所要检测的具体内容来为检测任务信息产生多个检测子任务的;如在WEB安全检测需要进行爬虫检测、动态URL提取检测、特征指纹检测、模拟注入检测以及漏洞库匹配检测的情况下,本实施例针对读取出的每一条检测任务信息分别产生爬虫检测子任务、动态URL提取检测子任务、特征指纹检测子任务、模拟注入检测子任务以及漏洞库匹配检测子任务。本实施例不限制产生的多个检测子任务的数量以及种类等。
通常情况下,一条检测任务信息所对应的多个检测子任务中的部分子任务之间会存在依赖性关系(即一个检测子任务的执行结果会被另一个检测子任务所使用),而部分子任务之间并不会存在依赖性关系(即一个检测子任务的执行并不需要另一个检测子任务的执行结果);对于存在依赖性关系的两个检测子任务,本实施例应将被依赖的检测子任务优先分配给WEB安全检测后端的集群系统,在集群系统针对该检测子任务执行完毕后,再将另一个检测子任务分配给WEB安全检测后端的集群系统;而对于不存在依赖关系的两个检测子任务,本实施例可以将这两个检测子任务同时分配给WEB安全检测后端的集群系统。
通常情况下,一条检测任务信息所对应的多个检测子任务与另一条检测任务信息所对应的多个检测子任务之间并不存在依赖性关系,即不同的检测任务信息分别对应的检测子任务可以同时提供给集群系统执行,而无需考虑两者之间的依赖性关系。
为了便于实现检测子任务的调度,本实施例可以基于队列来存储一条检测任务信息所对应的所有检测子任务。具体的,为缓存数据集合中的每一条检测任务信息分别创建一个队列,不同的检测任务信息对应不同的队列,且一条检测任务信息仅对应一个队列。针对读取的一条检测任务信息所产生的所有检测子任务被先后排入队列中;在将检测子任务排入队列的过程中,应考虑检测子任务之间的依赖关系,使被依赖的检测子任务能够先从队列中被取出;例如,针对先进先出队列而言,被依赖的检测子任务应优先被排入队列中;一个具体的例子,检测子任务乙、检测子任务丙和检测子任务丁均依赖于检测子任务甲的执行,检测子任务戊依赖于检测子任务乙、检测子任务丙和检测子任务丁的执行,因此,应首先将检测子任务甲排入队列中,以便于检测子任务甲能够优先从队列中取出;之后,检测子任务乙、检测子任务丙和检测子任务丁被排入队列中,最后,检测子任务戊被排入队列中;另外,本实施例不限制检测子任务乙、检测子任务丙和检测子任务丁这三者之间在队列中的先后排列顺序。
本实施例可以根据预先设置的信息获知检测子任务之间的依赖关系,因此,本实施例在将同一个队列中的检测子任务分配给集群系统时,应根据预先设置的依赖关系信息来实现对同一个队列中的检测子任务的调度。一个具体的例子,针对一个队列而言,本实施例可以根据预先设置的依赖关系信息以及集群系统中的处于空闲状态的集群处理单元的数量通过调用设置并行数量接口及时的设置该队列当前可以分配给WEB安全检测后端的检测子任务的数量,这样,后续可以根据该设置的数量将该队列中相应的检测子任务分配给WEB安全检测后端。
本实施例的WEB安全检测后端的集群系统中通常设置有多个检测处理单元(也可以称为集群处理单元),本实施例可以有效感知各检测处理单元的状态,且从队列中读取出的检测子任务应分配给处于空闲状态的检测处理单元,以实现集群系统的负载均衡。
S130、将集群系统执行检测子任务过程中提交的信息写入缓存数据集合中。
具体的,集群系统执行检测子任务过程中会产生需要缓存的信息(如该检测子任务的执行结果等),该信息应被写入缓存数据集合中,写入缓存数据集合中的该信息可以提供给其他检测子任务(如具有依赖关系的检测子任务)使用;且写入缓存数据集合中的信息可以采用json格式。
集群系统可以通过调用数据上传接口来提交需要缓存的信息,本实施例的API将集群系统提交的信息写入缓存数据集合中(如写入相应的检测任务信息所在的记录中)。为了避免写入冲突等现象的发生,本实施例可以在将信息写入缓存数据集合之前查看缓存数据集合中相应的检测任务信息的锁属性,如果该锁属性为打开,则应先将该锁属性设置为关闭,然后,将集群系统通过数据上传接口而提交的信息写入缓存数据集合中,在提交的信息写入完成之后,将检测任务信息的锁属性设置为打开;如果在将信息写入缓存数据集合之前查看缓存数据集合中相应的检测任务信息的锁属性为打开,则可以在等待预定时间间隔后,再次查看该检测任务信息的锁属性,直到该检测任务信息的锁属性为关闭,然后再执行将信息写入缓存数据集合中的过程。
另外,在集群系统针对每一个检测子任务执行完成时,均可以在缓存数据集合的相应检测任务信息中设置检测子任务完成标识,以表示某个检测子任务已经被执行完成;一个具体的例子,在一条检测任务信息对应的一个检测子任务被执行完成时,将缓存数据集合中该条检测任务信息所在记录的相应字段中的当前值递增1,在该条检测任务信息对应的另一个检测子任务被执行完成时,将缓存数据集合中该条检测任务信息所在记录的相应字段中的当前值递增1,以此类推;再一个具体的例子,在一条检测任务信息对应的第一个检测子任务被执行完成时,在缓存数据集合中该条检测任务信息所在记录的相应字段中写入“1”,在该条检测任务信息对应的第二个检测子任务被执行完成时,在缓存数据集合中该条检测任务信息所在记录的相应字段中的写入“2”,以此类推。
集群系统(如集群系统中的集群处理单元)可以通过调用设置状态接口实现在缓存数据集合的相应检测任务信息中设置检测子任务完成标识。
S140、在一条检测任务信息对应的各检测子任务执行完成后,将该条检测任务信息在缓存数据集合中的检测结果存储于WEB安全检测数据集合中。
具体的,本实施例可以根据缓存数据集合中的检测任务信息所在记录中的检测子任务完成标识来判断一条检测任务信息对应的各检测子任务是否均已执行完成;一个具体的例子,在每一条检测任务信息均对应有5个检测子任务的应用场景下,本实施例可以判断缓存数据集合中的各条检测任务信息所在记录的相应字段的当前值是否达到5,如果某条检测任务信息所在记录的相应字段的当前值达到5,则表示该条检测任务信息对应的各检测子任务均已执行完成,否则,表示该条检测任务信息对应的所有检测子任务还没有完全执行完成;另一个具体的例子,在每一条检测任务信息均对应有5个检测子任务的应用场景下,本实施例可以判断缓存数据集合中存储的各条检测任务信息所在记录的相应字段中记载的信息是否为“1”、“2”、“3”、“4”和“5”,如果缓存数据集合中某条检测任务信息所在记录的相应字段中记载的信息为“1”、“2”、“3”、“4”和“5”,则表示该条检测任务信息对应的各检测子任务均已执行完成,否则,表示该条检测任务信息对应的所有检测子任务还没有完全执行完成。本实施例不限制判断一条检测任务信息对应的各检测子任务是否均已执行完成的具体实现方式。
本实施例在检测出一条检测任务信息对应的所有检测子任务均已执行完成后,应将缓存数据集合中该条检测任务信息对应的检测结果(即一个完整的WEB安全检测的最终检测结果)存储于WEB安全检测数据集合中,如写入WEB安全检测数据集合的该条检测任务信息所在记录的相应字段中。写入WEB安全检测数据集合中的检测结果可以为json格式的数据。同时,缓存数据集合中该条检测任务信息所在的记录应被清除。
本实施例在通过上述各步骤为用户提供WEB安全检测的基础上,还能够提供WEB安全检测任务删除功能。
具体的,在WEB安全检测前端提交的检测任务信息所对应的WEB安全检测任务需要被删除时,WEB安全检测前端可以通过提交删除检测任务信息来使本实施例的API执行删除该WEB安全检测任务的操作。WEB安全检测前端可以通过调用删除任务接口来提交删除检测任务信息。通常情况下,并不是所有的WEB安全检测前端都能够提交删除检测任务信息,而只有具有删除权限的WEB安全检测前端才能够通过调用删除任务接口等方式提交删除检测任务信息。WEB安全检测前端提交的删除检测任务信息应包括能够标识出WEB应用的信息,如删除检测任务信息包括WEB应用的URL。在接收到WEB安全检测前端提交的删除检测任务信息的情况下,本实施例应将WEB安全检测数据集合中相应的检测任务信息设置为删除状态,并针对缓存数据集合以及集群系统执行相应的清除操作,如清除缓存数据集合中相应的检测任务信息所在的记录、清除相应的队列以及清除集群系统中相应的检测子任务等。
本实施例在通过上述各步骤为用户提供WEB安全检测的基础上,还能够提供为用户展示检测结果功能。
具体的,WEB安全检测前端可以通过获得检测结果接口请求获得某个WEB应用的WEB安全检测结果,本实施例的API根据该请求从WEB安全检测数据集合中查找该WEB应用的WEB安全检测结果,并将查找到的WEB安全检测结果提供给WEB安全检测前端,从而使WEB安全检测前端可以直接为用户展示该WEB安全检测结果。另外,WEB安全检测前端还可以利用生成报告接口将接收到的WEB安全检测结果生成WEB安全检测报告,并为用户展示该WEB安全检测报告。
实施例二、WEB安全检测方法。
本实施例的WEB安全检测方法所形成的API包括多个接口,多个接口可以被划分为四种类型(如图2所示);一种类型的接口可以被WEB安全检测前端调用,该种类型的接口属于用户侧类型接口;另一种类型的接口可以被WEB安全检测后端调用,该种类型的接口属于数据类型接口;再一种类型的接口主要用于控制集群处理单元的调度,该种类型的接口属于调度控制类型接口;最后一种类型的接口主要用于数据格式转换,该种类型的接口属于转换类型接口。
图2中的用户侧类型接口主要包括:创建单次检测任务接口(create接口)、创建批量检测任务接口(project接口)、创建循环检测任务接口(loop接口,也可以称为创建迭代任务接口)、删除任务接口(delete接口)、获得检测结果接口(get_result接口)、任务列表接口(task_list接口)以及生成报告接口(report接口)等。
图2中的数据类型接口主要包括:获取任务接口(get_task接口)、设置状态接口(set_status接口)以及数据上传接口(result_upload接口)。
图2中的调度控制类型接口主要包括:获取集群系统信息接口(debug接口)以及设置并行数量接口(set_serial接口)等。
图2中的转换类型接口主要包括:数据格式转换接口(storage接口)。
本实施例的API通过利用上述接口可以使WEB安全检测前端与WEB安全检测后端相互协作实现Web安全检测。WEB安全检测前端与WEB安全检测后端相互协作实现Web安全检测的大致过程如图3所示。
图3中,WEB安全检测前端(即图3中的WEB漏洞检测前端UI)通过调用create接口或者project接口或者loop接口等提交需要进行WEB安全检测的Web应用的标识信息以及相应的配置信息(如检测时间或者重复检测的预定时间间隔等),API将上述提交的信息(即检测任务信息)存储在WEB安全检测数据集合(即图3中的数据库)中;然后,API从数据库中读取检测任务信息,并利用storage接口将读取出的检测任务信息转换为json格式的检测任务信息,并将json格式的检测任务信息存储在缓存数据集合(即图3中的缓存)中;之后,API通过get_task接口从缓存中读取json格式的检测任务信息,为该检测任务信息创建队列,并将该检测任务信息对应的各检测子任务根据检测子任务之间的依赖关系先后放入该队列中;之后,队列中的检测子任务被调度到集群系统中相应的集群处理单元进行检测处理;集群处理单元通过调用result_upload接口提交其在处理过程中产生的需要缓存的信息(如中间检测结果等),集群处理单元提交的该数据被API写入缓存中,集群处理单元可以利用set_status接口在缓存中相应任务检测信息所在记录的相应字段处设置检测子任务完成标识;在缓存中的检测任务信息对应的所有检测子任务完成标识达到预定数量的情况下,将缓存中存储的检测结果写入数据库中,并将数据库中相应的检测任务信息的状态设置为处理完成状态。
本实施例中的WEB安全检测前端可以通过调用get_result接口获得数据库中存储的相应的检测任务信息所对应的检测结果,并向用户展示该检测结果;WEB安全检测前端还可以通过调用task_list接口获得其提交的所有检测任务信息,并展示给用户;WEB安全检测前端还可以通过调用report接口将相应的检测任务信息对应的检测结果生成检测报告,并展示给用户。
在实现检测子任务调度的过程中,本实施例可以利用debug接口来获得WEB安全检测后端的各集群处理单元的Ip信息、属性信息、存活量信息、存活时间信息等,从而可以对集群处理单元的存活状态进行监控,进而可以根据集群处理单元的健康状况灵活的调整检测子任务的调度方案,使检测子任务的调度更加合理。
另外,在实现检测子任务调度的过程中,本实施例可以利用set_serial接口及时设置属于同一条检测任务信息的检测子任务被同时分配给集群处理单元的数量,从而可以方便的实现属于同一条检测任务信息的检测子任务的串并行调度。
实施例三、WEB安全检测装置。
本实施例的WEB安全检测装置的主要结构如图4所示。
图4中的WEB安全检测装置主要包括:第一数据处理模块400、第二数据处理模块410、检测任务分解模块420、子任务调度模块430、第三数据处理模块440以及第四数据处理模块450。
第一数据处理模块400主要适于将WEB安全检测前端提交的检测任务信息存储于WEB安全检测数据集合中。
具体的,本实施例中的WEB安全检测前端提交的检测任务信息是对WEB安全检测任务的描述,该检测任务信息可以表示出对WEB安全检测对象所执行的WEB安全检测;其中的WEB安全检测对象可以使用能够唯一标识出WEB应用的信息来表示;在对所有的WEB安全检测对象都执行相同的WEB安全检测的情况下,检测任务信息中可以缺省对所执行的WEB安全检测的描述信息。由此可知,第一数据处理模块400存储于WEB安全检测数据集合中的检测任务信息可以包括能够标识出WEB应用的信息以及所执行的WEB安全检测的描述信息,也可以不包括所执行的WEB安全检测的描述信息而仅包括能够标识出WEB应用的信息。上述能够唯一标识出WEB应用的信息可以采用WEB应用的URL等。另外,第一数据处理模块400存储于WEB安全检测数据集合中的检测任务信息还可以包括其他信息,如执行WEB安全检测的时间或者周期性执行WEB安全检测的时间间隔或者修复后再次进行WEB安全检测的信息等WEB安全检测配置信息。本实施例不限制第一数据处理模块400存储于WEB安全检测数据集合中的检测任务信息所包含的具体内容。
第一数据处理模块400可以通过创建任务接口接收WEB安全检测前端提交的一条或者多条检测任务信息,具体的例子如上述实施例有中的描述,在此不再重复说明。
本实施例中的WEB安全检测前端所调用的创建任务接口可以为创建单次检测任务接口,也可以为创建批量检测任务接口,还可以为创建循环检测任务接口。创建单次检测任务接口对应于一个WEB安全检测任务,即第一数据处理模块400通过创建单次检测任务接口可以获得单个WEB安全检测的检测任务信息。创建批量检测任务接口对应于多个WEB安全检测任务,即第一数据处理模块400通过创建批量检测任务接口可以获得多个WEB安全检测的检测任务信息。创建循环检测任务接口对应于周期性WEB安全检测任务,即第一数据处理模块400通过创建循环检测任务接口可以获得周期性WEB安全检测的检测任务信息(如包含有URL以及周期性执行WEB安全检测的时间间隔的检测任务信息)。
在第一数据处理模块400接收到WEB安全检测前端通过调用创建单次检测任务接口提交的一条检测任务信息时,第一数据处理模块400将该条包含有一条URL的检测任务信息存储于WEB安全检测数据集合中;在第一数据处理模块400接收到WEB安全检测前端通过调用创建批量检测任务接口提交的多条检测任务信息时,第一数据处理模块400将所有的检测任务信息均存储于WEB安全检测数据集合中;在第一数据处理模块400接收到WEB安全检测前端通过调用创建循环检测任务接口提交的一条检测任务信息时,第一数据处理模块400将该条包含有一条URL和一条循环配置信息的检测任务信息存储于WEB安全检测数据集合中。
本实施例中的WEB安全检测数据集合主要用于存储WEB安全检测前端提交的检测任务信息以及WEB安全检测后端提交的WEB检测结果,检测任务信息以及WEB检测结果应对应存储,如检测任务信息以及WEB检测结果存储在一条记录中。
本实施例的WEB安全检测数据集合中的每一条检测任务信息均可以具有三种状态,即未处理状态、处理中状态(即正在处理状态)以及处理完成状态,以表示出WEB安全检测后端针对该检测任务信息的WEB安全检测执行情况。在检测任务信息被标识有状态的情况下,第一数据处理模块400在将检测任务信息存储于WEB安全检测数据集合中的过程中,可以在WEB安全检测数据集合中为该条检测任务信息设置状态,如第一数据处理模块400将该条检测任务信息的状态设置为未处理状态,在存储过程中第一数据处理模块400不执行设置检测任务信息的状态的情况下,该条检测任务信息的状态会被设置为缺省状态,且该缺省状态为未处理状态。
本实施例的WEB安全检测数据集合通常可以利用基于MYSQL(关系型数据库管理系统)的数据库来实现。
需要说明的是,本实施例的WEB安全检测数据集合中的每一条检测任务信息均可以具有更多种状态,如还可以具有删除状态。
第二数据处理模块410主要适于从WEB安全检测数据集合中读取待处理的至少一条检测任务信息,并将读取的检测任务信息写入缓存数据集合中。
具体的,在WEB安全检测数据集合中的各检测任务信息设置有状态的情况下,第二数据处理模块410可以根据各检测任务信息的状态来判断一条检测任务信息是否为待处理的检测任务信息,如第二数据处理模块410将标识为未处理状态的检测任务信息确定为待处理的检测任务信息;第二数据处理模块410也可以采用其他方式来确定待处理的检测任务信息,如第二数据处理模块410根据当前记录的已经被读取的检测任务信息的序列号来判断一条检测任务信息是否为待处理的检测任务信息。
第二数据处理模块410可以一次从WEB安全检测数据集合中读取一条检测任务信息,第二数据处理模块410也可以一次从WEB安全检测数据集合中读取多条检测任务信息。在第二数据处理模块410从WEB安全检测数据集合中读取出检测任务信息时,第二数据处理模块410应将WEB安全检测数据集合中的被读取出的检测任务信息的状态设置为正在处理状态,以避免该检测任务信息被再次读取。第二数据处理模块410将读取出的检测任务信息写入缓存数据集合中。
本实施例中的缓存数据集合主要用于实现数据的缓存,如存储正在被处理的检测任务信息以及集群系统在处理过程中返回的数据(如中间数据集以及检测结果等)等。缓存数据集合中存储的数据通常可以采用json格式,从而第二数据处理模块410应将从WEB安全检测数据集合中读取出的检测任务信息转换为json格式的检测任务信息(如通过调用数据格式转换接口将读取出的检测任务信息转换为json格式的检测任务信息),然后,第二数据处理模块410将json格式的检测任务信息存储于在缓存数据集合中。
本实施例的缓存数据集合通常可以利用基于redis的数据库来实现。另外,第二数据处理模块410可以通过调用获取任务接口从WEB安全检测数据集合中读取检测任务信息。
检测任务分解模块420主要适于针对读取的各条检测任务信息均产生多个检测子任务。
具体的,本实施例的装置针对检测任务信息所实施的WEB安全检测包括多种不同的检测,即包括多个检测子任务。一个完整的WEB安全检测所包括的检测子任务的数量以及种类等是预先设定的,也就是说,检测任务分解模块420是根据预先设置的WEB安全检测所要检测的具体内容来为检测任务信息产生多个检测子任务的;如在WEB安全检测需要进行爬虫检测、动态URL提取检测、特征指纹检测、模拟注入检测以及漏洞库匹配检测的情况下,检测任务分解模块420针对读取出的每一条检测任务信息分别产生爬虫检测子任务、动态URL提取检测子任务、特征指纹检测子任务、模拟注入检测子任务以及漏洞库匹配检测子任务。本实施例不限制检测任务分解模块420产生的多个检测子任务的数量以及种类等。
为了便于实现检测子任务的调度,检测任务分解模块420可以基于队列来存储一条检测任务信息所对应的所有检测子任务。具体的,检测任务分解模块420为缓存数据集合中的每一条检测任务信息分别创建一个队列,不同的检测任务信息对应不同的队列,且一条检测任务信息仅对应一个队列。检测任务分解模块420读取的一条检测任务信息所产生的所有检测子任务被先后排入队列中;在将检测子任务排入队列的过程中,检测任务分解模块420应考虑检测子任务之间的依赖关系,使被依赖的检测子任务能够先从队列中被取出;例如,针对先进先出队列而言,检测任务分解模块420应将被依赖的检测子任务优先被排入队列中;一个具体的例子,检测子任务乙、检测子任务丙和检测子任务丁均依赖于检测子任务甲的执行,而检测子任务戊依赖于检测子任务乙、检测子任务丙和检测子任务丁的执行,因此,检测任务分解模块420应首先将检测子任务甲排入队列中,以便于检测子任务甲能够优先的被子任务调度模块430从队列中取出;之后,检测任务分解模块420将检测子任务乙、检测子任务丙和检测子任务丁排入队列中,最后,检测任务分解模块420将检测子任务戊排入队列中;另外,本实施例不限制检测任务分解模块420将检测子任务乙、检测子任务丙和检测子任务丁这三者排入队列中的先后顺序。
针对一个队列而言,检测任务分解模块420可以根据预先设置的依赖关系信息以及集群系统中的处于空闲状态的集群处理单元的数量通过调用设置并行数量接口及时的设置该队列当前可以分配给WEB安全检测后端的检测子任务的数量,这样,子任务调度模块430可以根据该设置的数量将该队列中相应的检测子任务分配给WEB安全检测后端。
子任务调度模块430主要适于将各检测子任务分别分配给WEB安全检测后端的集群系统。
具体的,在通常情况下,一条检测任务信息所对应的多个检测子任务中的部分子任务之间会存在依赖性关系(即一个检测子任务的执行结果会被另一个检测子任务所使用),而部分子任务之间并不会存在依赖性关系(即一个检测子任务的执行并不需要另一个检测子任务的执行结果);对于存在依赖性关系的两个检测子任务,子任务调度模块430应将被依赖的检测子任务优先分配给WEB安全检测后端的集群系统,在集群系统针对该检测子任务执行完毕后,子任务调度模块430再将另一个检测子任务分配给WEB安全检测后端的集群系统;而对于不存在依赖关系的两个检测子任务,子任务调度模块430可以将这两个检测子任务同时分配给WEB安全检测后端的集群系统。
通常情况下,一条检测任务信息所对应的多个检测子任务与另一条检测任务信息所对应的多个检测子任务之间并不存在依赖性关系,即子任务调度模块430可以将不同的检测任务信息分别对应的检测子任务同时提供给集群系统执行,而无需考虑两者之间的依赖性关系。
本实施例的WEB安全检测后端的集群系统中通常设置有多个检测处理单元(也可以称为集群处理单元),由于子任务调度模块430会将从队列中读取出的检测子任务分配给处于空闲状态的检测处理单元,因此,本实施例的装置可以实现集群系统的负载均衡。
第三数据处理模块440主要适于将集群系统执行检测子任务过程中提交的信息写入缓存数据集合中。
具体的,集群系统执行检测子任务过程中会产生需要缓存的信息(如该检测子任务的执行结果等),该信息被第三数据处理模块440写入缓存数据集合中,第三数据处理模块440写入缓存数据集合中的该信息可以提供给其他检测子任务(如具有依赖关系的检测子任务)使用;且第三数据处理模块440写入缓存数据集合中的信息可以采用json格式。
集群系统可以通过调用数据上传接口来向第三数据处理模块440提交需要缓存的信息,第三数据处理模块440将集群系统提交的信息写入缓存数据集合中(如写入相应的检测任务信息所在的记录中)。为了避免写入冲突等现象的发生,第三数据处理模块440可以在将信息写入缓存数据集合之前查看缓存数据集合中相应的检测任务信息的锁属性,如果该锁属性为打开,则第三数据处理模块440应先将该锁属性设置为关闭,然后,第三数据处理模块440将集群系统通过数据上传接口而提交的信息写入缓存数据集合中,在提交的信息写入完成之后,第三数据处理模块440将检测任务信息的锁属性设置为打开;如果在将信息写入缓存数据集合之前第三数据处理模块440查看缓存数据集合中相应的检测任务信息的锁属性为打开,则第三数据处理模块440可以在等待预定时间间隔后,再次查看该检测任务信息的锁属性,直到该检测任务信息的锁属性为关闭,然后第三数据处理模块440再执行将信息写入缓存数据集合中的过程。
另外,在集群系统针对每一个检测子任务执行完成时,均可以在缓存数据集合的相应检测任务信息中设置检测子任务完成标识,以表示某个检测子任务已经被执行完成;一个具体的例子,在一条检测任务信息对应的一个检测子任务被执行完成时,将缓存数据集合中该条检测任务信息所在记录的相应字段中的当前值递增1,在该条检测任务信息对应的另一个检测子任务被执行完成时,将缓存数据集合中该条检测任务信息所在记录的相应字段中的当前值递增1,以此类推;再一个具体的例子,在一条检测任务信息对应的第一个检测子任务被执行完成时,在缓存数据集合中该条检测任务信息所在记录的相应字段中写入“1”,在该条检测任务信息对应的第二个检测子任务被执行完成时,在缓存数据集合中该条检测任务信息所在记录的相应字段中的写入“2”,以此类推。
集群系统(如集群系统中的集群处理单元)可以通过调用设置状态接口实现在缓存数据集合的相应检测任务信息中设置检测子任务完成标识。
第四数据处理模块450主要适于在一条检测任务信息对应的各检测子任务执行完成后,将该条检测任务信息在所述缓存数据集合中的检测结果存储于所述WEB安全检测数据集合中。
具体的,第四数据处理模块450可以根据缓存数据集合中的检测任务信息所在记录中的检测子任务完成标识来判断一条检测任务信息对应的各检测子任务是否均已执行完成;一个具体的例子,在每一条检测任务信息均对应有5个检测子任务的应用场景下,第四数据处理模块450可以判断缓存数据集合中的各条检测任务信息所在记录的相应字段的当前值是否达到5,如果某条检测任务信息所在记录的相应字段的当前值达到5,则表示该条检测任务信息对应的各检测子任务均已执行完成,否则,表示该条检测任务信息对应的所有检测子任务还没有完全执行完成;另一个具体的例子,在每一条检测任务信息均对应有5个检测子任务的应用场景下,第四数据处理模块450判断缓存数据集合中存储的各条检测任务信息所在记录的相应字段中记载的信息是否为“1”、“2”、“3”、“4”和“5”,如果缓存数据集合中某条检测任务信息所在记录的相应字段中记载的信息为“1”、“2”、“3”、“4”和“5”,则表示该条检测任务信息对应的各检测子任务均已执行完成,否则,表示该条检测任务信息对应的所有检测子任务还没有完全执行完成。本实施例不限制第四数据处理模块450判断一条检测任务信息对应的各检测子任务是否均已执行完成的具体实现方式。
第四数据处理模块450在检测出一条检测任务信息对应的所有检测子任务均已执行完成后,第四数据处理模块450应将缓存数据集合中该条检测任务信息对应的检测结果(即一个完整的WEB安全检测的最终检测结果)存储于WEB安全检测数据集合中,如写入WEB安全检测数据集合的该条检测任务信息所在记录的相应字段中。第四数据处理模块450写入WEB安全检测数据集合中的检测结果可以为json格式的数据。同时,第四数据处理模块450应清除缓存数据集合中该条检测任务信息所在的记录。
本实施例的装置还可以包括删除处理模块(图4中未示出),删除处理模块主要适于在接收到WEB安全检测前端通过调用删除任务接口而提交的删除检测任务信息的情况下,将WEB安全检测数据集合中相应的检测任务信息设置为删除状态,针对缓存数据集合以及集群系统执行相应的清除操作,如删除处理模块清除缓存数据集合中相应的检测任务信息所在的记录、清除相应的队列以及清除集群系统中相应的检测子任务等。。
具体的,在WEB安全检测前端提交的检测任务信息所对应的WEB安全检测任务需要被删除时,WEB安全检测前端可以通过提交删除检测任务信息来使删除处理模块执行删除该WEB安全检测任务的操作。WEB安全检测前端可以通过调用删除任务接口来提交删除检测任务信息。通常情况下,并不是所有的WEB安全检测前端都能够提交删除检测任务信息,而只有具有删除权限的WEB安全检测前端才能够通过调用删除任务接口等方式提交删除检测任务信息。删除处理模块接收到的WEB安全检测前端提交的删除检测任务信息应包括能够标识出WEB应用的信息,如删除检测任务信息包括WEB应用的URL。
本实施例的装置还可以包括展示检测结果模块(图4中未示出),展示检测结果模块可以通过获得检测结果接口请求获得某个WEB应用的WEB安全检测结果。本实施例的装置根据该请求从WEB安全检测数据集合中查找该WEB应用的WEB安全检测结果,并将查找到的WEB安全检测结果提供给展示检测结果模块,从而使展示检测结果模块可以直接为用户展示该WEB安全检测结果。另外,展示检测结果模块还可以利用生成报告接口将接收到的WEB安全检测结果生成WEB安全检测报告,并为用户展示该WEB安全检测报告。
需要注意的是,本发明可以在软件和/或者软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或者任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器、磁或者光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然,本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一方面来看,均应该将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明来限定,因此,旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应该将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一以及第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (20)
1.一种WEB安全检测方法,其中,该方法包括以下步骤:
将WEB安全检测前端提交的检测任务信息存储于WEB安全检测数据集合中;
从所述WEB安全检测数据集合中读取待处理的至少一条检测任务信息,并将所述读取的检测任务信息写入缓存数据集合中;
针对读取的各条检测任务信息均产生多个检测子任务,将各检测子任务分别分配给WEB安全检测后端的集群系统;
将集群系统执行检测子任务过程中提交的信息写入缓存数据集合中;
在一条检测任务信息对应的各检测子任务执行完成后,将该条检测任务信息在所述缓存数据集合中的检测结果存储于所述WEB安全检测数据集合中。
2.根据权利要求1所述的方法,其中,所述WEB安全检测数据集合为基于关系型数据库管理系统的数据库,且所述缓存数据集合为基于redis的数据库。
3.根据权利要求1或2所述的方法,其中,所述将WEB安全检测前端提交的检测任务信息存储于WEB安全检测数据集合中包括:
将WEB安全检测前端通过调用创建任务接口而提交的包含有待检测WEB标识的检测任务信息存储于WEB安全检测数据集合中。
4.根据权利要求3所述的方法,其中,所述创建任务接口包括:创建单次检测任务接口、创建批量检测任务接口或者创建循环检测任务接口;
在创建任务接口为创建批量检测任务接口的情况下,WEB安全检测前端提交的检测任务信息为多条;
在创建任务接口为创建循环检测任务接口的情况下,WEB安全检测前端提交的检测任务信息包含有循环配置信息。
5.根据权利要求1或2所述的方法,其中,所述从所述WEB安全检测数据集合中读取待处理的至少一条检测任务信息,并将所述读取的检测任务信息写入缓存数据集合中包括:
通过调用获取任务接口从所述WEB安全检测数据集合中读取检测任务信息,将所述WEB安全检测数据集合中被读取的检测任务信息的状态设置为处理中,并将读取的检测任务信息转换为json数据格式后写入缓存数据集合中。
6.根据权利要求1或2所述的方法,其中,所述针对读取的各条检测任务信息均产生多个检测子任务包括:
针对读取的各条检测任务信息分别创建队列,针对读取的各条检测任务信息均产生多个检测子任务;
根据检测任务信息对应的各检测子任务之间的依赖关系设置检测子任务的检测顺序,并根据所述检测顺序使各检测子任务先后进入相应的队列中。
7.根据权利要求6所述的方法,其中,所述将各检测子任务分别分配给WEB安全检测后端的集群系统包括:
根据预先设定的一个WEB安全检测前端的检测子任务同时并行数量限制值从各队列中读取检测子任务,并将读取的检测子任务分配给集群系统中的处于空闲状态的检测处理单元。
8.根据权利要求6所述的方法,其中,所述方法还包括:
在接收到WEB安全检测前端通过调用删除任务接口而提交的删除检测任务信息的情况下,将WEB安全检测数据集合中相应的检测任务信息设置为删除状态,清除缓存数据集合中相应的检测任务信息,清除相应的队列,并清除集群系统中的相应的检测子任务。
9.根据权利要求1或2所述的方法,其中,所述将集群系统执行检测子任务过程中提交的信息写入缓存数据集合中包括:
在缓存数据集合中相应的检测任务信息的锁属性为打开的情况下,将该锁属性设置为关闭,将集群系统通过调用数据上传接口而提交的信息写入缓存数据集合中相应的检测任务信息所在的记录中,并将锁属性设置为打开。
10.根据权利要求1或2所述的方法,其中,所述将集群系统执行检测子任务过程中提交的信息写入缓存数据集合中包括:
在一个检测子任务执行完成时,集群系统通过调用设置状态接口在缓存数据集合中相应的检测任务信息所在记录中设置检测子任务完成标识;
其中,所述检测子任务完成标识用于判断一条检测任务信息对应的各检测子任务是否均执行完成。
11.一种WEB安全检测装置,其中,所述装置包括:
第一数据处理模块,适于将WEB安全检测前端提交的检测任务信息存储于WEB安全检测数据集合中;
第二数据处理模块,适于从所述WEB安全检测数据集合中读取待处理的至少一条检测任务信息,并将所述读取的检测任务信息写入缓存数据集合中;
检测任务分解模块,适于针对读取的各条检测任务信息均产生多个检测子任务;
子任务调度模块,适于将各检测子任务分别分配给WEB安全检测后端的集群系统;
第三数据处理模块,适于将集群系统执行检测子任务过程中提交的信息写入缓存数据集合中;
第四数据处理模块,适于在一条检测任务信息对应的各检测子任务执行完成后,将该条检测任务信息在所述缓存数据集合中的检测结果存储于所述WEB安全检测数据集合中。
12.根据权利要求11所述的装置,其中,所述WEB安全检测数据集合为基于关系型数据库管理系统的数据库,且所述缓存数据集合为基于redis的数据库。
13.根据权利要求11或12所述的装置,其中,所述第一数据处理模块具体适于:
将WEB安全检测前端通过调用创建任务接口而提交的包含有待检测WEB标识的检测任务信息存储于WEB安全检测数据集合中。
14.根据权利要求13所述的装置,其中,所述创建任务接口包括:创建单次检测任务接口、创建批量检测任务接口或者创建循环检测任务接口;
在创建任务接口为创建批量检测任务接口的情况下,WEB安全检测前端提交的检测任务信息为多条;
在创建任务接口为创建循环检测任务接口的情况下,WEB安全检测前端提交的检测任务信息包含有循环配置信息。
15.根据权利要求11或12所述的装置,其中,所述第二数据处理模块具体适于:
通过调用获取任务接口从所述WEB安全检测数据集合中读取检测任务信息,将所述WEB安全检测数据集合中被读取的检测任务信息的状态设置为处理中,并将读取的检测任务信息转换为json数据格式后写入缓存数据集合中。
16.根据权利要求11或12所述的装置,其中,所述检测任务分解模块具体适于:
针对读取的各条检测任务信息分别创建队列,针对读取的各条检测任务信息均产生多个检测子任务;
根据检测任务信息对应的各检测子任务之间的依赖关系设置检测子任务的检测顺序,并根据所述检测顺序使各检测子任务先后进入相应的队列中。
17.根据权利要求16所述的装置,其中,所述子任务调度模块具体适于:
根据预先设定的一个WEB安全检测前端的检测子任务同时并行数量限制值从各队列中读取检测子任务,并将读取的检测子任务分配给集群系统中的处于空闲状态的检测处理单元。
18.根据权利要求16所述的装置,其中,所述装置还包括:
删除处理模块,适于在接收到WEB安全检测前端通过调用删除任务接口而提交的删除检测任务信息的情况下,将WEB安全检测数据集合中相应的检测任务信息设置为删除状态,清除缓存数据集合中相应的检测任务信息,清除相应的队列,并清除集群系统中的相应的检测子任务。
19.根据权利要求11或12所述的装置,其中,所述第三数据处理模块具体适于:
在缓存数据集合中相应的检测任务信息的锁属性为打开的情况下,将该锁属性设置为关闭,将集群系统通过调用数据上传接口而提交的信息写入缓存数据集合中相应的检测任务信息所在的记录中,并将锁属性设置为打开。
20.根据权利要求11或12所述的装置,其中,所述第三数据处理模块具体适于:
在一个检测子任务执行完成时,集群系统通过调用设置状态接口在缓存数据集合中相应的检测任务信息所在记录中设置检测子任务完成标识;
其中,所述检测子任务完成标识用于判断一条检测任务信息对应的各检测子任务是否均执行完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510202647.7A CN104834599B (zh) | 2015-04-24 | 2015-04-24 | Web安全检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510202647.7A CN104834599B (zh) | 2015-04-24 | 2015-04-24 | Web安全检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104834599A true CN104834599A (zh) | 2015-08-12 |
CN104834599B CN104834599B (zh) | 2018-10-12 |
Family
ID=53812504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510202647.7A Active CN104834599B (zh) | 2015-04-24 | 2015-04-24 | Web安全检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104834599B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897129A (zh) * | 2017-01-24 | 2017-06-27 | 浙江工商大学 | 一种基于区域的多智能体互联网数据采集任务调度方法 |
CN107025129A (zh) * | 2016-01-29 | 2017-08-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法以及装置 |
CN107168863A (zh) * | 2016-03-08 | 2017-09-15 | 展讯通信(天津)有限公司 | 用于移动终端系统的应用安全测试方法、装置及测试工具 |
CN108345470A (zh) * | 2017-01-24 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种数据处理、存储的方法、装置及电子设备 |
CN108616502A (zh) * | 2018-03-12 | 2018-10-02 | 广东睿江云计算股份有限公司 | 一种web安全存储的方法 |
CN105205168B (zh) * | 2015-10-12 | 2018-11-09 | 北京京东尚科信息技术有限公司 | 一种基于Redis数据库的曝光系统及其操作方法 |
CN109583223A (zh) * | 2017-09-29 | 2019-04-05 | 北京国双科技有限公司 | 一种对大数据安全部署的检测方法及装置 |
CN110704325A (zh) * | 2019-10-09 | 2020-01-17 | 京东数字科技控股有限公司 | 数据处理方法及装置、计算机存储介质及电子设备 |
CN113452691A (zh) * | 2021-06-24 | 2021-09-28 | 未鲲(上海)科技服务有限公司 | 业务流量检测方法及装置、服务器、存储介质 |
CN115001728A (zh) * | 2021-06-28 | 2022-09-02 | 南京巅峰数据服务有限公司 | 一种计算机前端处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120072968A1 (en) * | 2007-02-16 | 2012-03-22 | Wysopal Christopher J | Assessment and analysis of software security flaws in virtual machines |
CN103856467A (zh) * | 2012-12-06 | 2014-06-11 | 百度在线网络技术(北京)有限公司 | 一种实现安全扫描的方法及分布式系统 |
CN104536819A (zh) * | 2014-12-29 | 2015-04-22 | 同程网络科技股份有限公司 | 基于web服务的任务调度方法 |
-
2015
- 2015-04-24 CN CN201510202647.7A patent/CN104834599B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120072968A1 (en) * | 2007-02-16 | 2012-03-22 | Wysopal Christopher J | Assessment and analysis of software security flaws in virtual machines |
CN103856467A (zh) * | 2012-12-06 | 2014-06-11 | 百度在线网络技术(北京)有限公司 | 一种实现安全扫描的方法及分布式系统 |
CN104536819A (zh) * | 2014-12-29 | 2015-04-22 | 同程网络科技股份有限公司 | 基于web服务的任务调度方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105205168B (zh) * | 2015-10-12 | 2018-11-09 | 北京京东尚科信息技术有限公司 | 一种基于Redis数据库的曝光系统及其操作方法 |
CN107025129B (zh) * | 2016-01-29 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 一种数据处理方法以及装置 |
CN107025129A (zh) * | 2016-01-29 | 2017-08-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法以及装置 |
CN107168863A (zh) * | 2016-03-08 | 2017-09-15 | 展讯通信(天津)有限公司 | 用于移动终端系统的应用安全测试方法、装置及测试工具 |
CN108345470A (zh) * | 2017-01-24 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种数据处理、存储的方法、装置及电子设备 |
CN106897129A (zh) * | 2017-01-24 | 2017-06-27 | 浙江工商大学 | 一种基于区域的多智能体互联网数据采集任务调度方法 |
CN106897129B (zh) * | 2017-01-24 | 2019-07-23 | 浙江工商大学 | 一种基于区域的多智能体互联网数据采集任务调度方法 |
CN108345470B (zh) * | 2017-01-24 | 2021-10-08 | 阿里巴巴集团控股有限公司 | 一种数据处理、存储的方法、装置及电子设备 |
CN109583223A (zh) * | 2017-09-29 | 2019-04-05 | 北京国双科技有限公司 | 一种对大数据安全部署的检测方法及装置 |
CN108616502A (zh) * | 2018-03-12 | 2018-10-02 | 广东睿江云计算股份有限公司 | 一种web安全存储的方法 |
CN110704325B (zh) * | 2019-10-09 | 2021-07-30 | 京东数字科技控股有限公司 | 数据处理方法及装置、计算机存储介质及电子设备 |
CN110704325A (zh) * | 2019-10-09 | 2020-01-17 | 京东数字科技控股有限公司 | 数据处理方法及装置、计算机存储介质及电子设备 |
CN113452691A (zh) * | 2021-06-24 | 2021-09-28 | 未鲲(上海)科技服务有限公司 | 业务流量检测方法及装置、服务器、存储介质 |
CN113452691B (zh) * | 2021-06-24 | 2022-09-16 | 未鲲(上海)科技服务有限公司 | 业务流量检测方法及装置、服务器、存储介质 |
CN115001728A (zh) * | 2021-06-28 | 2022-09-02 | 南京巅峰数据服务有限公司 | 一种计算机前端处理方法 |
CN115001728B (zh) * | 2021-06-28 | 2024-01-23 | 河南科家创新科技集团有限公司 | 一种计算机前端处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104834599B (zh) | 2018-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104834599A (zh) | Web安全检测方法和装置 | |
CN107391653B (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
US9787706B1 (en) | Modular architecture for analysis database | |
US20180285417A1 (en) | Intelligent query parameterization of database workloads | |
Zhang et al. | Automated profiling and resource management of pig programs for meeting service level objectives | |
CN110795257A (zh) | 处理多集群作业记录的方法、装置、设备及存储介质 | |
Crawl et al. | A provenance-based fault tolerance mechanism for scientific workflows | |
CN110908641B (zh) | 基于可视化的流计算平台、方法、设备和存储介质 | |
US20080065400A1 (en) | System and Method for Producing Audit Trails | |
JP6903755B2 (ja) | データ統合ジョブ変換 | |
Bellettini et al. | Distributed CTL model checking using MapReduce: theory and practice | |
JP2016518896A (ja) | ゲームデータの収集のための方法及びシステム | |
Nasonov et al. | Hybrid scheduling algorithm in early warning systems | |
CN106257447A (zh) | 云存储服务器的视频存储及检索方法、视频云存储系统 | |
Insfran et al. | Evaluating the usability of mashups applications | |
US10073938B2 (en) | Integrated circuit design verification | |
Lasluisa et al. | In-situ feature-based objects tracking for data-intensive scientific and enterprise analytics workflows | |
CN116401025A (zh) | 一种数据处理系统及数据处理方法 | |
Bonifacio et al. | Hadoop MapReduce configuration parameters and system performance: A systematic review | |
Liew et al. | Performance database: capturing data for optimizing distributed streaming workflows | |
Punn et al. | Testing big data application | |
CN111290855B (zh) | 分布式环境中多gpu服务器的gpu卡管理方法、系统及存储介质 | |
CN113641628A (zh) | 数据质量检测方法、装置、设备及存储介质 | |
CN114662094A (zh) | 标识硬件性能计数器事件的方法和装置 | |
CN114253920A (zh) | 一种交易重新排序方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |