核心数据检测处理方法、装置、计算机设备及存储介质与流程

文档序号:18796457发布日期:2019-09-29 19:44阅读:203来源:国知局
本发明涉及软件测试
技术领域
:,尤其涉及一种核心数据检测处理方法、装置、计算机设备及存储介质。
背景技术
::在应用程序开发过程中,为了保证所开发的应用程序可实现某种特定功能,开发人员可能在应用程序的代码中设置用于访问特定机构的核心数据的代码。在应用程序系统上线或者被推送给关联机构上线时,可能会导致该特定机构的核心数据泄漏,无法保障核心数据安全。其中,核心数据是指与特定机构主营业务相关的数据,这些数据可以是隐私信息也可以是经营信息。例如,在特定机构a开发的保单管理应用程序中,核心数据可以特定机构a对应的客户信息所形成的数据,也可以是特定机构a对应的保单信息所形成的数据,若特定机构a将所开发的保单管理应用程序推送给关联机构b,此时,若该保单管理应用程序中的代码可全表访问特定机构a的核心数据,则会导致特定机构a的核心数据泄露,因此,在应用程序开发过程中,需要对应用程序的代码进行核心数据检测,以保证核心数据的安全性,避免核心数据泄露。技术实现要素:本发明实施例提供一种核心数据检测处理方法、装置、计算机设备及存储介质,以解决当前应用程序开发过程中没有对代码进行核心数据检测而存在的数据安全的问题。一种核心数据检测处理方法,包括:获取目标应用程序对应的待检测代码;采用代码扫描工具对所述待检测代码进行代码扫描,从所述待检测代码中筛选出包含sql查询语句的目标代码模块;对所述目标代码模块进行识别,获取所述目标代码模块对应的数据表名,判断所述数据表名对应的目标数据表是否为核心数据表;若所述目标数据表为核心数据表,则对所述目标代码模块进行风险审核,获取风险审核结果,并对所述目标代码模块进行形式校验,获取形式校验结果;基于所述风险审核结果和所述形式校验结果,对所述目标代码模块进行分类处理,获取低风险的可执行代码模块。一种核心数据检测处理装置,包括:待检测代码获取模块,用于获取目标应用程序对应的待检测代码;目标代码模块获取模块,用于采用代码扫描工具对所述待检测代码进行代码扫描,从所述待检测代码中筛选出包含sql查询语句的目标代码模块;核心数据表判断模块,用于对所述目标代码模块进行识别,获取所述目标代码模块对应的数据表名,判断所述数据表名对应的目标数据表是否为核心数据表;审核校验处理模块,用于若所述目标数据表为核心数据表,则对所述目标代码模块进行风险审核,获取风险审核结果,并对所述目标代码模块进行形式校验,获取形式校验结果;分类处理模块,用于基于所述风险审核结果和所述形式校验结果,对所述目标代码模块进行分类处理,获取低风险的可执行代码模块。一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述核心数据检测处理方法。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述核心数据检测处理方法。上述核心数据检测处理方法、装置、计算机设备及存储介质,先通过对待检测代码进行代码扫描,以筛选出包含sql查询语句的目标代码模块,以便基于目标代码模块进行后续处理,排除不包含sql查询语句的代码模块的干扰,有助于提高代码模块检测的效率。再通过对目标代码模块进行识别,以确定其对应的数据表名,从而判断该数据表名对应的目标数据表是否为核心数据表,从而确定该目标代码模块是否需要访问核心数据表,为检测是否访问核心数据提供技术基础,进一步有助于提高代码模块检测的效率。最后,在目标数据表为核心数据表时,对目标代码模块进行风险审核和形式校验,并根据风险审核结果和形式校验结果对目标代码模块进行处理,从而获取低风险的可执行代码模块,以保证代码检测之后获取的代码不仅为可执行代码,而且没有访问核心数据,从而达到保障核心数据安全的目的。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明一实施例中核心数据检测处理方法的一应用环境示意图;图2是本发明一实施例中核心数据检测处理方法的一流程图;图3是本发明一实施例中核心数据检测处理方法的另一流程图;图4是本发明一实施例中核心数据检测处理方法的另一流程图;图5是本发明一实施例中核心数据检测处理方法的另一流程图;图6是本发明一实施例中核心数据检测处理方法的另一流程图;图7是本发明一实施例中核心数据检测处理方法的另一流程图;图8是本发明一实施例中核心数据检测处理方法的另一流程图;图9是本发明一实施例中核心数据检测处理装置的一示意图;图10是本发明一实施例中计算机设备的一示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供的核心数据检测处理方法,该核心数据检测处理方法可应用如图1所示的应用环境中。具体地,该核心数据检测处理方法应用在代码检测系统中,该代码检测系统包括如图1所示的客户端和服务器,客户端与服务器通过网络进行通信,用于实现检测所开发的目标应用程序中是否包含可访问核心数据的代码,以便对这些可访问核心数据的代码进行修改,以避免核心数据泄露,从而保证核心数据的安全。其中,客户端又称为用户端,是指与服务器相对应,为客户提供本地服务的程序。客户端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备上。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。在一实施例中,如图2所示,提供一种核心数据检测处理方法,以该方法应用在图1所示的服务器为例进行说明,包括如下步骤:s201:获取目标应用程序对应的待检测代码。其中,目标应用程序是指需要进行代码检测的应用程序。待检测代码是指需要进行代码检测的代码。在目标应用程序开发过程中,依据功能需求的不同,开发人员可根据每一功能需求开发相应的功能模块代码,因此,目标应用程序包括至少一个功能模块代码,该功能模块代码为可实现某种特定功能对应的代码。本实施例中,目标应用程序对应的待检测代码是指开发人员开发完成但未经代码检测的代码,可以是新增的功能模块代码,也可以是基于已有功能代码模块进行修改的功能模块代码。s202:采用代码扫描工具对待检测代码进行代码扫描,从待检测代码中筛选出包含sql查询语句的目标代码模块。其中,代码扫描工具是用于进行代码扫描以获取满足特定格式的工具。目标代码模块是从待检测代码中筛选出包含sql查询语句的代码模块,具体可以理解为待检测代码中用于实现数据访问的代码模块。本实施例中的代码扫描工具可以为静态代码扫描工具(如sonar),用于可对待检测代码进行全代码扫描,以筛选出满足特定格式的目标代码模块。可以理解地,通过对待检测代码进行代码扫描,以筛选出包含sql查询语句的目标代码模块,以便基于目标代码模块进行后续处理,排除不包含sql查询语句的代码模块的干扰,有助于提高代码模块检测的效率。由于目标代码模块可能包含用于实现数据访问的sql查询语句,这些sql查询语句可能访问特定机构(一般为开发目标应用程序的机构)的核心数据或者非核心数据,若该sql查询语句访问核心数据,则认定目标代码模块在开发过程中嵌入访问核心数据的代码,为了保障该特定机构的核心数据的安全,需将包含sql查询语句的目标代码模块筛选出来,以便进行进一步分析处理。具体地,服务器可获取用户通过客户端编辑的用于检测sql查询语句对应的特定格式的正则表达式,采用代码扫描工具对待检测代码进行代码扫描,从待检测代码中筛选出与正则表达式相匹配的代码,确定为包含sql查询语句的目标代码模块。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。本实施例中,预先配置的正则表达式为“select……from……”或者“select……from……where……”,则采用代码扫描工具对待检测代码进行扫描时,将所有包含“select……from……”或者“select……from……where……”格式的代码筛选出来,确定为包含sql查询语句的目标代码模块。s203:对目标代码模块进行识别,获取目标代码模块对应的数据表名,判断数据表名对应的目标数据表是否为核心数据表。具体地,服务器对包含sql查询语句的目标代码模块进行识别,以将sql查询语句中数据表标识from之后的字段确定为该sql查询语句中需要查询的数据表名,确定为该目标代码模块对应的数据表名。例如,目标代码模块中包含<selectid=’querycoredata’>selectdata1,data2fromcore_data_tablewheredata1=’xyz’</select>这一sql查询语句,将该sql查询语句中数据表标识from之后的字段core_data_table确定为目标代码模块对应的数据表名。该数据表名对应一目标数据表,这一目标数据表为该目标代码模块需要访问的数据表,即core_data_table这一数据表名对应的数据表。其中,核心数据表是用于存储核心数据的数据表。核心数据是指与特定机构主营业务相关的数据,这些数据可以是隐私信息或者经营信息。具体地,服务器通过判断数据表名对应的目标数据表是否为核心数据表,以确定该目标代码模块对应的sql查询语句是否需要访问核心数据表;若需要访问核心数据表,则说明该sql查询语句极有可能访问核心数据表中的核心数据,存在核心数据泄露的风险;若不需要访问核心数据表,则说明该sql查询语句无需访问核心数据,不存在核心数据泄露的风险,因此,可根据sql查询语句是否需要访问核心数据对目标代码模块进行分类处理。可以理解地,通过对目标代码模块进行识别,以确定其对应的数据表名,从而判断该数据表名对应的目标数据表是否为核心数据表,从而确定该目标代码模块是否需要访问核心数据表,为确定是否访问核心数据提供技术基础。s204:若目标数据表为核心数据表,则对目标代码模块进行风险审核,获取风险审核结果,并对目标代码模块进行形式校验,获取形式校验结果。具体地,对目标代码模块进行风险审核,获取风险审核结果,具体是指对目标代码模块中包含的sql查询语句进行审核,以确定该目标代码模块访问核心数据的风险的过程。其中,风险审核结果具体为确定目标代码模块访问核心数据的风险的结果。该风险审核结果包括高风险和低风险两种,其中,高风险是指目标代码模块访问核心数据的可能性较大的结果;低风险是指目标代码模块访问核心数据的可能性较小结果。具体地,对目标代码模块进行形式校验,获取形式校验结果,具体是指对目标代码模块中的代码进行形式校验,以确定该目标代码模块能否执行访问数据的过程。其中,形式校验结果具体为确定目标代码模块能否访问核心数据的结果。形式校验结果包括校验通过和校验不通过两种,其中,校验通过是指目标代码模块可执行,以使其sql查询语句能够访问数据的结果;校验不通过是指目标代码模块不可执行,以使其sql查询语句不能访问数据的结果。本实施例中,只有在目标数据表为核心数据表时,即该目标代码模块所需访问的目标数据表为核心数据表时,才需要对该目标代码模块进行风险审核和形式校验,以达到检测目标代码模块是否访问核心数据的目的,以避免核心数据泄露的风险。可以理解地,若目标数据表不为核心数据表,则不存在核心数据泄露的风险,无需进行相应的风险审核和形式校验,以提高代码检测效率。s205:基于风险审核结果和形式校验结果,对目标代码模块进行分类处理,获取低风险的可执行代码模块。由于风险审核结果包括高风险和低风险两种,而形式校验结果包括校验通过和校验不通过两种,因此,在对目标代码模块进行风险审核和形式校验之后,可确定该目标代码模块存在如下几种情况:第一种,风险审核结果为低风险,且形式校验结果为校验通过;第二种,风险审核结果为高风险,且形式校验结果为校验通过;第三种,风险审核结果为低风险,且形式校验结果为校验不通过;第四种,风险审核结果为高风险,且形式校验结果为校验不通过。本实施例中,针对目标代码模块进行风险审核和形式校验之后确定四种情况,对目标代码模块进行分类处理,以便对目标代码模块进行保存或者修改,从而获取低风险的可执行代码模块,该低风险的可执行代码模块可以理解为目标代码模块对应的最终可上线运行的模块。本实施例所提供的核心数据检测处理方法中,首先,通过对待检测代码进行代码扫描,以筛选出包含sql查询语句的目标代码模块,以便基于目标代码模块进行后续处理,排除不包含sql查询语句的代码模块的干扰,有助于提高代码模块检测的效率。然后,通过对目标代码模块进行识别,以确定其对应的数据表名,从而判断该数据表名对应的目标数据表是否为核心数据表,从而确定该目标代码模块是否需要访问核心数据表,为检测是否访问核心数据提供技术基础,进一步有助于提高代码模块检测的效率。接着,在目标数据表为核心数据表时,对目标代码模块进行风险审核和形式校验,并根据风险审核结果和形式校验结果对目标代码模块进行处理,从而获取低风险的可执行代码模块,以保证代码检测之后获取的代码不仅为可执行代码,而且没有访问核心数据,从而达到保障核心数据安全的目的。在一实施例中,如图3所示,步骤s203中的判断数据表名对应的目标数据表是否为核心数据表,具体包括如下步骤:s301:采用查询语句生成规则对数据表名进行处理,获取目标查询语句。其中,查询语句生成规则是预先设置的用于根据数据表名生成相应的查询语句的规则。目标查询语句是采用查询语句生成规则对目标代码模块识别出的数据表名进行处理后生成的查询语句。具体地,查询语句生成规则具体为“selecttable_xfromdb_y”,其中,table_x为用于填充的目标代码模块中的数据表名的形式参数,db_y为用于填充核心表数据库的名称的形式参数。若目标数据表的数据表名为core_data_table,而核心表数据库的名称为db_core1,则基于查询语句规则生成的目标查询语句为selectcore_data_tablefromdb_core1。可以理解地,采用该查询语句生成规则对数据表名进行处理,可快速生成相应的目标查询语句,无需人工编写相应的查询代码,有助于提高目标查询语句的生成效率,进而有助于提供代码检测的效率。s302:基于目标查询语句查询核心表数据库,判断是否存在与数据表名同名的核心数据表,若存在,则目标数据表为核心数据表。其中,核心表数据库是用于存储本机构所有的核心数据表的数据库,设该核心表数据库的名称为db_core1,则服务器可基于目标查询语句查询核心表数据库db_core1,判断该核心表数据库db_core1中是否存在与数据表名core_data_table同名的核心数据表;若核心数据库db_core1中存储有与目标数据表的数据表名相同的核心数据表core_data_table,则确定目标数据为核心数据表;相应地,若核心数据库中不存储有与目标数据表的数据表名core_data_table相同的核心数据表,则确定目标数据表不为核心数据表。本实施例所提供的核心数据检测处理方法中,服务器预先存储有查询语句生成规则,可直接基于该查询语句生成规则对数据表名进行处理,以快速生成相应的目标查询语句,无需人工编写相应的查询代码,以提高目标查询语句的获取效率;再基于目标查询语句查询核心表数据库,从而快速确定该数据表名对应的目标数据表是否为核心数据表,有助于提高后续代码检测的效率。在一实施例中,如图4所示,在步骤s201之前,即在获取目标应用程序对应的待检测代码之前,核心数据检测处理方法还包括如下步骤:s401:获取数据表创建请求,数据表创建请求包括至少两个需求字段。其中,数据表创建请求是预先创建数据表的请求。需求字段是指所要创建的数据表中包含的字段。例如,若服务器接收到的数据表创建请求采用如下sql语句实现:createtable表名称c(列名称1数据类型,列名称2数据类型,列名称3数据类型,……列名称n数据类型),以表明需要创建一数据表名为c的数据表,该数据表中包含列名称1、列名称2、列名称3……列名称n等列。此时,列名称1、列名称2、列名称3……列名称n为对应的需求字段。s402:获取需求校验信息表,采用匹配算法对需求校验信息表和至少两个需求字段进行校验,获取字段校验结果。其中,需求校验信息表是预先设置的用于校验数据表创建请求中的至少两个需求字段是否为核心字段信息的数据表。该需求校验信息表中包括至少一组核心字段信息,每一核心字段信息包括构成核心字段的一个字段或者至少两个字段的组合。例如,该需求校验信息表中可设置同时包含姓名、身份证号和手机号等字段信息为核心字段;或者同时包含姓名、身份证号和保单号等字段信息为核心字段。其中,匹配算法是用于实现对至少两个需求字段和需求校验信息表中的每一核心字段信息进行匹配处理的算法。该匹配算法包括但不限于本实施例提及的正则表达式或者文本匹配算法。字段校验结果是用于反映至少两个需求字段是否为核心字段的结果。该字段校验结果为疑似核心字段和非核心字段两个结果。其中,疑似核心字段是至少两个需求字段与需求校验信息表中至少一个核心字段信息相匹配时获取的字段校验结果。非核心字段是该数据表创建请求中的至少两个需求字段不与需求校验信息表中的任一核心字段信息相匹配时获取的字段校验结果。可以理解地,服务器采用该匹配算法逐一判断每一核心字段信息与至少两个需求字段是否匹配,若匹配,则将至少两个需求字段确定为疑似核心字段;若不匹配,则将至少两个需求字段确定为非核心字段。例如,若需求校验信息表中的一核心字段信息为包含姓名、身份证号和保单号等字段,则服务器采用正则表达式或者文本匹配算法,检测至少两个需求字段是否同时包含姓名、身份证号和保单号;若至少两个需求字段中同时包含姓名、身份证号和保单号等内容,则获取的字段校验结果为疑似核心字段;若至少两个需求字段中不同时包含姓名、身份证号和保单号等内容,则获取的字段校验结果为非核心字段。s403:若字段校验结果为疑似核心字段,则基于至少两个需求字段创建核心数据表,并将核心数据表存储在核心表数据库中。具体地,若字段校验结果为疑似核心字段,说明该数据表创建请求中的至少两个需求字段与需求校验信息表中至少一个核心字段信息相匹配,即所要创建的数据表用于存储核心数据,因此,可基于至少两个需求字段创建核心数据表,并将该核心数据表存储到核心表数据库中,以便通过该核心表数据库对核心数据表进行统一管理。s404:若字段校验结果为非核心字段,则基于至少两个需求字段创建普通数据表,并将普通数据表存储在普通表数据库中。具体地,若字段校验结果为非核心字段,说明该数据表创建请求中的至少两个需求字段不与需求校验信息表中的任一核心字段信息相匹配,即所要创建的数据表不是用于存储核心数据,因此,可基于至少两个需求字段创建普通数据表,并将该普通数据表存储到普通表数据库中,以便通过该普通表数据库对普通数据表进行统一管理。本实施例所提供的核心数据检测处理方法中,采用匹配算法对需求校验信息表与数据表创建请求中的至少两个需求字段进行校验,以确定至少两个需求字段中是否包含疑似核心字段;若包含疑似核心字段,则创建核心数据表;若不包含疑似核心字段(即为非核心字段)则创建普通数据表,从而实现根据至少两个需求字段分别创建核心数据表和普通数据表的目的,有助于实现对核心数据表和普通数据表进行分类处理的目的,为后续基于核心数据表判断待检测代码是否访问核心数据提供技术支持,保障代码检测的顺利实现。在一实施例中,如图5所示,步骤s403,即若字段校验结果为疑似核心字段,则基于至少两个需求字段创建核心数据表,并将核心数据表存储在核心表数据库中,具体包括如下步骤:s501:若字段校验结果为疑似核心字段,则将数据表创建请求发送给审核终端,获取审核终端发送的字段审核结果。其中,审核终端是用于供审核人员使用的终端,该审核终端与代码检测系统的服务器通信相连,用于实现信息交互。具体地,若字段校验结果为疑似核心字段,说明该数据表创建请求中的至少两个需求字段与需求校验信息表中至少一个核心字段信息相匹配,即所要创建的数据表极有可能是用于存储核心数据的数据表,此时,为了进一步确认本次数据表创建请求是否真的为创建用于存储核心数据的数据表的请求,可将该数据表创建请求发送给审核终端,以便审核人员基于业务需求审核该数据表创建请求是否为创建核心数据表的请求。可以理解地,若审核人员确定该数据表创建请求为创建核心数据表的请求,则可通过审核终端向服务器返回的字段审核结果为核心字段确认信息;若审核人员确定该数据表创建请求不为创建核心数据表的请求,则可通过审核终端向服务器返回的字段审核结果为核心字段否认信息。其中,核心字段确认信息是用于确认至少两个需求字段为核心字段的信息;核心字段否认信息是用于确认至少两个需求字段不为核心字段的信息。s502:若字段审核结果为核心字段确认信息,则基于至少两个需求字段创建核心数据表,并将核心数据表存储在核心表数据库中。具体地,若字段审核结果为核心字段确认信息,则说明审核人员认定该数据表创建请求是用于创建核心数据表的请求,因此,可基于至少两个需求字段创建核心数据表,并将该核心数据表存储到核心表数据库中,以便通过该核心表数据库对核心数据表进行统一管理。可以理解地,在字段校验结果为疑似核心字段时,需接收到审核终端反馈的核心字段确认信息时,才会基于至少两个需求字段创建核心数据表,既保证最终创建的核心数据表的有效性,也可有助于节省审核人员的审核工作量。s503:若字段审核结果为核心字段否认信息,基于至少两个需求字段创建普通数据表,并将普通数据表存储在普通表数据库中。具体地,若字段审核结果为核心字段否认信息,则说明审核人员认定该数据表创建请求不是用于创建核心数据表的请求,因此,可基于至少两个需求字段创建普通数据表,并将该普通数据表存储到普通表数据库中,以便通过该普通表数据库对普通数据表进行统一管理。本实施例所提供的核心数据检测处理方法中,在字段校验结果为疑似核心字段,则将数据表创建请求发送给审核终端,获取审核终端发送的字段审核结果,以便根据字段审核结果分别创建核心数据表或者普通数据表,有助于实现对核心数据表和普通数据表进行分类处理的目的,为后续基于核心数据表判断待检测代码是否访问核心数据提供技术支持,保障代码检测的顺利实现。并且,在字段校验结果为疑似核心字段时,需接收到审核终端反馈的核心字段确认信息时,才会基于至少两个需求字段创建核心数据表,既保证最终创建的核心数据表的有效性,也可有助于节省审核人员的审核工作量。在一实施例中,如图6所示,步骤s204中对目标代码模块进行风险审核,获取风险审核结果,具体包括如下步骤:s601:对目标代码模块进行信息提取,获取筛选条件内容和数据提取内容。具体地,服务器对包含sql查询语句的目标代码模块进行信息提取,以将sql查询语句中条件标识where之后的信息确定为该sql查询语句中的筛选条件内容,并将sql查询语句中数据标识select之后的信息确定为该sql查询语句中的数据提取内容。例如,目标代码模块中包含<selectid=’querycoredata’>selectdata1,data2fromcore_data_tablewheredata1=’xyz’</select>这一sql查询语句,则筛选条件内容为where这一条件标识之后的内容(即data1=’xyz’);数据提取内容为select这一数据标识之后的内容(即data1,data2)。本实施例中,对目标代码模块进行信息提取的过程可采用字符串匹配算法也可采用正则表达式匹配算法。一般来说,在一sql查询语句中,一般都会包括数据提取内容,但可能包括筛选条件内容也可能不包含筛选条件内容,在sql查询语句中不包含筛选条件内容,则默认筛选条件内容为空,其为全表查询,这样更容易导致数据泄露。s602:若筛选条件内容对应唯一索引,且数据提取内容不为敏感字段内容,则获取的风险审核结果为低风险。其中,唯一索引是一种索引,其不允许具有索引值相同的行,从而禁止重复的索引或键值,在创建该索引时检查是否有重复的键值,并在每次使用insert或update语句添加数据时进行检查,以保证数据表中包含唯一索引。本实施例中,身份证号、手机号、驾驶证号、保单号、表单号或者其他可唯一确定一条特定数据的索引为唯一索引,如上述sql查询语句中,“select……where手机号=12345678912”,则其筛选条件内容对应唯一索引,也即最终要查询的数据只是针对手机号为12345678912的特定数据。可以理解地,若筛选条件内容对应唯一索引,执行基于该目标代码模块进行数据访问时,会获取针对该唯一索引对应的特定数据,数据泄露风险较低。其中,敏感字段内容是预先设置并存储在服务器中的敏感字段对应的内容。例如,服务器预先设置银行密码、金额或者其他字段为敏感字段,采用字符串匹配算法判断“selectdata1,data2where……”中date1和date2中是否包含预先设置的银行密码和金额等敏感字段;若包含,则数据提取内容为敏感字段内容;若不包含,则数据提取内容不为敏感字段内容。本实施例中,若筛选条件内容对应唯一索引,且数据提取内容不为敏感字段内容,则说明即使该目标代码模块访问核心数据表,但其只是访问唯一索引对应的特定数据中不为敏感字段内容对应的数据,其核心数据泄露的风险较低;因此,获取的风险审核结果为低风险。s603:若筛选条件内容不对应唯一索引,或者数据提取内容为敏感字段内容,则获取的风险审核结果为高风险。本实施例中,若筛选条件内容不对应唯一索引(包括筛选条件内容为空的情况),则说明该sql查询语句需要访问多条特定数据,即所需访问的数据量较多,核心数据泄露的风险较高。若数据提取内容为敏感字段内容,说明访问核心数据表中的敏感内容,核心数据泄露的风险较高。因此,在上述两个条件择一存在时,获取获取的风险审核结果为高风险。本实施例所提供的核心数据检测处理方法中,根据目标代码模块提取出来的筛选条件内容和数据提取内容,从筛选条件内容是否对应唯一索引和数据提取内容是否为敏感字段内容这两个维度进行综合判断,以获取高风险或者低风险的风险审核结果,以便更合理准确地评估该目标代码模块会引起核心数据泄露的风险。在一实施例中,如图7所示,步骤s204中对目标代码模块进行形式校验,获取形式校验结果,具体包括如下步骤:s701:采用代码分析工具对目标代码模块进行分析,判断目标代码模块是否包含调用链。其中,代码分析工具是用于分析代码的工具,具体用于分析代码中是否包含调用链,以确定代码是否为可执行代码的工具。本实施例中,代码分析工具可以采用guava的files工具。其中,调用链是设置在代码中用于确定代码可执行的链接,可以理解为用于实现前端与后端进行数据交互的数据输出接口。由于源程序到可执行程序的过程需经过预编译、编译、汇编和链接等过程,其中,链接是指源代码经过预编译、编译和汇编等过程形成的目标文件进行链接,以形成可执行文件的过程。为了确保最终获取的目标代码模块中的代码为可执行代码,需采用代码分析工具分析该目标代码模块中是否包含调用链,以确定其是否包含数据输出接口。s702:若目标代码模块包含调用链,则获取的形式校验结果为校验通过。具体地,若目标代码模块包含调用链,则说明该目标代码模块中包含用于实现前端与后端进行数据交互的数据输出接口,以使最终生成的前端页面可通过这一数据输出接口调用后端数据,以保证前端页面功能的实现,即这一目标代码模块可实现前端与后端进行数据交互,即为可执行代码模块,因此,获取的形式校验结果为校验通过。例如,服务器可使用dom4j这一代码扫描工具解析ibatissql的xml配置文件(即待检测代码),以筛选出包含<selectid=’querycoredata’>selectdata1,data2fromcore_data_tablewheredata1=’xyz’</select>这一sql查询语句的目标代码模块。在识别出该目标代码模块所要访问的目标数据表为核心数据表时,对该目标代码模块进行风险审核,以确定核心数据泄露风险的风险审核结果,并采用guava的files工具分析目标代码模块,解析出这个包含sql查询语句的目标代码模块的调用链(http接口->java执行sql逻辑->ibatissql),若该目标代码模块中包含调用链,则说明调用链上的接口会在页面上被引用,可定位到具体页面,以实现前端与后端的交互,以验证该数据输出接口行为的合理性,保证目标代码模块中的代码为可执行代码。s703:若目标代码模块不包含调用链,则获取的形式校验结果为校验不通过。具体地,若目标代码模块不包含调用链,则说明该目标代码模块中不包含用于实现前端与后端进行数据交互的数据输出接口,使得最终生成的前端页面不能与后端数据进行交互,无法保障前端页面功能的实现,即该目标代码模块为不可执行代码模块,因此,获取的形式校验结果为校验不通过。本实施例所提供的核心数据检测处理方法中,采用代码分析工具对目标代码模块进行分析,以确定目标代码模块是否包含调用链,从而获取校验通过或者校验不通过的形式校验结果,以确保最终形成的目标代码模块为可执行代码模块,保证目标代码模块的可执行性。在一实施例中,如图8所示,步骤s205中基于风险审核结果和形式校验结果,对目标代码模块进行分类处理,获取低风险的可执行代码模块,具体包括如下步骤:s801:若风险审核结果为低风险,且形式校验结果为校验通过,则将目标代码模块确定为低风险的可执行代码模块。具体地,若风险审核结果为低风险,且形式校验结果为校验通过,则说明该目标代码模块中的筛选条件内容对应唯一索引且数据提取内容不为敏感字段内容,其只是访问唯一索引对应的特定数据中不为敏感字段内容对应的数据,其核心数据泄露的风险较低;且目标代码模块中包含调用链,可实现前端与后端进行数据交互,保证目标代码模块的可执行性,因此,可直接将该目标代码模块确定为低风险的可执行代码模块。s802:若风险审核结果为高风险,且形式校验结果为校验通过,则目标代码模块为高风险的可执行代码模块,生成风险复核信息,将可执行代码模块和风险复核信息发送给审核终端,接收审核终端返回的风险复核结果,基于风险复核结果获取低风险的可执行代码模块。具体地,若风险审核结果为高风险,且形式校验结果为校验通过,则说明该目标代码模块中的筛选条件内容不对应唯一索引或者数据提取内容为敏感字段内容,即其需要访问多条特定数据(数据量多),或者所需访问的数据为敏感字段内容对应的特定数据,其核心数据泄露的风险较高;且目标代码模块中包含调用链,可实现前端与后端进行数据交互,保证目标代码模块的可执行性,因此,可将该目标代码模块确定为高风险的可执行代码模块。其中,风险复核信息是用于提醒审核人员对可执行代码模块的风险进行复核的信息。风险复核结果是审核人员基于风险复核信息对可执行代码模块进行风险复核的结果。在将目标代码模块确定为高风险的可执行代码模块之后,需先拦截将这一可执行代码模块存储到项目代码库中,以避免因可执行代码模块引起的核心数据泄露的问题。本实施例中,在将目标代码模块确定为高风险的可执行代码模块之后,生成风险复核信息,以将该风险复核信息和可执行代码模块发送给审核终端,以使审核人员基于该风险复核信息对可执行代码模块进行复核,获取风险复核结果。可以理解地,若风险复核结果为低风险,则直接将目标代码模块确定为低风险的可执行代码模块;若风险复核结果为高风险,则将目标代码模块发送给开发终端,接收开发终端返回的返回的低风险的可执行代码模块,此时需要再次进行的风险审核和形式校验,为避免重复,在此不一一赘述。s803:若风险审核结果为低风险,且形式校验结果为校验不通过,则目标代码模块为低风险的不可执行代码模块,生成代码修改提示信息,将不可执行代码模块和代码修改提示信息发送给开发终端,接收开发终端返回的低风险的可执行代码模块。具体地,若风险审核结果为低风险,且形式校验结果为校验不通过,则说明该目标代码模块中的筛选条件内容对应唯一索引且数据提取内容不为敏感字段内容,其只是访问唯一索引对应的特定数据中不为敏感字段内容对应的数据,其核心数据泄露的风险较低;且目标代码模块中不包含调用链,不能实现前端与后端进行数据交互,因此,可认定该目标代码模块为低风险的不可执行代码模块。其中,代码修改提示信息是用于提示开发人员进行代码修改的信息,该代码修改提示信息主要用于提示开发人员修改调用链,以保证目标代码模块的可执行性的信息。本实施例中,在将目标代码模块确定为低风险的不可执行代码模块之后,生成代码修改提示信息,将该不可执行代码模块和代码修改提示信息发送给开发终端,以使开发人员基于代码修改提示信息对不可执行代码模块进行相应修改(主要修改调用链),以获取开发人员通过开发终端返回的低风险的可执行代码模块,此时需要再次进行前面的风险审核和形式校验,为避免重复,在此不一一赘述。s804:若风险审核结果为高风险,且形式校验结果为校验不通过,则目标代码模块为高风险的不可执行代码模块,生成代码修改告警信息,将不可执行代码模块和代码修改告警信息发送给开发终端,接收开发终端返回的低风险的可执行代码模块。具体地,若风险审核结果为高风险,且形式校验结果为校验不通过,则说明该目标代码模块中的筛选条件内容不对应唯一索引或者数据提取内容为敏感字段内容,即其需要访问多条特定数据(数据量多),或者所需访问的数据为敏感字段内容对应的特定数据,其核心数据泄露的风险较高;且目标代码模块中不包含调用链,不能实现前端与后端进行数据交互,因此,可认定该目标代码模块为高风险的不可执行代码模块。其中,代码修改告警信息是用于提示开发人员进行代码修改的信息,该代码修改告警信息主要用于提示开发人员修改调用链和sql查询语句,以保证目标代码模块的可执行性并避免核心数据泄露风险的信息。本实施例中,在将目标代码模块确定为高风险的不可执行代码模块之后,生成代码修改告警信息,将该不可执行代码模块和代码修改告警信息发送给开发终端,以使开发人员基于代码修改告警信息对不可执行代码模块进行相应修改(修改调用链和sql查询语句),以获取开发人员通过开发终端返回的低风险的可执行代码模块,同样需要进行前面的风险审核和形式校验,为避免重复,在此不一一赘述。进一步地,在获取低风险的可执行代码模块之后,将该低风险的可执行代码模块存储在项目代码库中,以实现对低风险的可执行代码模块进行统一管理。该项目代码库是用于存储所有低风险的可执行代码模块的代码仓库。本实施例所提供的核心数据检测处理方法中,根据风险审核结果对应的高风险和低风险两种结果,以及形式校验结果对应的校验通过和校验不通过两种结果,对目标代码模块进行分类处理,可直接确定低风险的可执行代码模块,或者可生成相应的信息(如风险复核信息、代码修改提示信息和代码修改告警信息),基于该信息进行相应处理,以快速获取低风险的可执行代码模块,既保障核心数据安全,又保证可执行代码模块的可执行性。应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。在一实施例中,提供一种核心数据检测处理装置,该核心数据检测处理装置与上述实施例中核心数据检测处理方法一一对应。如图9所示,该核心数据检测处理装置包括待检测代码获取模块901、目标代码模块获取模块902、核心数据表判断模块903、审核校验处理模块904和分类处理模块905。各功能模块详细说明如下:待检测代码获取模块901,用于获取目标应用程序对应的待检测代码。目标代码模块获取模块902,用于采用代码扫描工具对待检测代码进行代码扫描,从待检测代码中筛选出包含sql查询语句的目标代码模块。核心数据表判断模块903,用于对目标代码模块进行识别,获取目标代码模块对应的数据表名,判断数据表名对应的目标数据表是否为核心数据表。审核校验处理模块904,用于若目标数据表为核心数据表,则对目标代码模块进行风险审核,获取风险审核结果,并对目标代码模块进行形式校验,获取形式校验结果。分类处理模块905,用于基于风险审核结果和形式校验结果,对目标代码模块进行分类处理,获取低风险的可执行代码模块。优选地,核心数据表判断模块903包括:目标查询语句获取单元和查询判断处理单元。目标查询语句获取单元,用于采用查询语句生成规则对数据表名进行处理,获取目标查询语句。查询判断处理单元,用于基于目标查询语句查询核心表数据库,判断是否存在与数据表名同名的核心数据表,若存在,则目标数据表为核心数据表。优选地,在待检测代码获取模块901之前,核心数据检测处理装置还包括:创建请求获取单元、需求字段校验单元和核心表创建单元。创建请求获取单元,用于获取数据表创建请求,数据表创建请求包括至少两个需求字段。需求字段校验单元,用于获取需求校验信息表,采用匹配算法对需求校验信息表和至少两个需求字段进行校验,获取字段校验结果。核心表创建单元,用于若字段校验结果为疑似核心字段,则基于至少两个需求字段创建核心数据表,并将核心数据表存储在核心表数据库中。优选地,核心表创建单元包括:字段审核结果获取子单元和核心数据表创建子单元。字段审核结果获取子单元,用于若字段校验结果为疑似核心字段,则将数据表创建请求发送给审核终端,获取审核终端发送的字段审核结果。核心数据表创建子单元,用于若字段审核结果为核心字段确认信息,则基于至少两个需求字段创建核心数据表,并将核心数据表存储在核心表数据库中。优选地,审核校验处理模块904包括:信息提取单元、第一风险审核单元和第二风险审核单元。信息提取单元,用于对目标代码模块进行信息提取,获取筛选条件内容和数据提取内容。第一风险审核单元,用于若筛选条件内容对应唯一索引,且数据提取内容不为敏感字段内容,则获取的风险审核结果为低风险。第二风险审核单元,用于若筛选条件内容不对应唯一索引,或者数据提取内容为敏感字段内容,则获取的风险审核结果为高风险。优选地,审核校验处理模块904包括:调用链分析单元、第一形式校验单元和第二形式校验单元。调用链分析单元,用于采用代码分析工具对目标代码模块进行分析,判断目标代码模块是否包含调用链。第一形式校验单元,用于若目标代码模块包含调用链,则获取的形式校验结果为校验通过。第二形式校验单元,用于若目标代码模块不包含调用链,则获取的形式校验结果为校验不通过。优选地,分类处理模块905包括:第一分类处理单元、第二分类处理单元、第三分类处理单元和第四分类处理单元。第一分类处理单元,用于若风险审核结果为低风险,且形式校验结果为校验通过,则将目标代码模块确定为低风险的可执行代码模块。第二分类处理单元,用于若风险审核结果为高风险,且形式校验结果为校验通过,则目标代码模块为高风险的可执行代码模块,生成风险复核信息,将可执行代码模块和风险复核信息发送给审核终端,接收审核终端返回的风险复核结果,基于风险复核结果获取低风险的可执行代码模块。第三分类处理单元,用于若风险审核结果为低风险,且形式校验结果为校验不通过,则目标代码模块为低风险的不可执行代码模块,生成代码修改提示信息,将不可执行代码模块和代码修改提示信息发送给开发终端,接收开发终端返回的低风险的可执行代码模块。第四分类处理单元,用于若风险审核结果为高风险,且形式校验结果为校验不通过,则目标代码模块为高风险的不可执行代码模块,生成代码修改告警信息,将不可执行代码模块和代码修改告警信息发送给开发终端,接收开发终端返回的低风险的可执行代码模块。关于核心数据检测处理装置的具体限定可以参见上文中对于核心数据检测处理方法的限定,在此不再赘述。上述核心数据检测处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行核心数据检测处理方法过程中采用或者生成的数据,如低风险的可执行代码模块。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种核心数据检测处理方法。在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中核心数据检测处理方法,例如图2所示s201-s205,或者图2至图8中所示,为避免重复,这里不再赘述。或者,处理器执行计算机程序时实现核心数据检测处理装置这一实施例中的各模块/单元的功能,例如图9所示的核心数据检测处理装置包括待检测代码获取模块901、目标代码模块获取模块902、核心数据表判断模块903、审核校验处理模块904和分类处理模块905的功能,为避免重复,这里不再赘述。在一实施例中,提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中核心数据检测处理方法,例如图2所示s201-s205,或者图2至图8中所示,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述核心数据检测处理装置这一实施例中的各模块/单元的功能,例如图9所示的核心数据检测处理装置包括待检测代码获取模块901、目标代码模块获取模块902、核心数据表判断模块903、审核校验处理模块904和分类处理模块905的功能,为避免重复,这里不再赘述。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1