一种泄露代码检索方法、装置及计算机可读存储介质与流程

文档序号:33131668发布日期:2023-02-01 08:53阅读:22来源:国知局
一种泄露代码检索方法、装置及计算机可读存储介质与流程

1.本技术涉及信息安全技术领域,尤其涉及一种泄露代码检索方法、装置及计算机可读存储介质。


背景技术:

2.目前在监测和检测泄露代码时,如在对github平台上的泄露代码进行检测时,现有的相关技术通常采用调用github平台的api接口的方式,通过接口的检索功能实现与关键词相关的开源项目和项目代码的检索。
3.这种方式会受到github平台api接口的限制和影响,例如在搜索代码时,github的api接口频率限制很大(认证后只有30次/分钟),无法满足快速搜索;在实际搜索时,某些项目关键词的搜索结果项可能会超过100条,而api在设置per_page参数后至多支持展现100条结果项,无法完全展示搜索结果;并且由于接口功能的限制,只能检测接口提供的与关键词相关项目信息,无法提供关键词所在项目的上下文代码片段;无法进行并行检索,从而大大降低了关键词检索的效率。


技术实现要素:

4.本技术实施例提供了一种泄露代码检索方法、装置及计算机可读存储介质,至少能够解决相关技术在通过关键词进行泄露代码检索时效率较低且不能并行检索的问题。
5.本技术实施例第一方面提供了一种泄露代码检索方法,包括:
6.当接收到对应于泄露代码关键词的检索指令时,爬取对应于所述泄露代码关键词的项目信息;
7.根据检索请求类型,构建对应于所述检索请求类型的检索语句;其中,所述检索请求类型包括:敏感路径检索请求、敏感代码关键词检索请求、敏感文件名检索请求;
8.将所述检索语句在所述项目信息中进行检索,得到对应于所述检索语句的检索结果;其中,所述检索结果为对应于所述泄露代码关键词的位置信息。
9.本技术实施例第二方面提供了一种泄露代码检索装置,包括:
10.爬取模块,用于当接收到泄露代码关键词的检索指令时,爬取对应于所述泄露代码关键词的项目信息;
11.构建模块,用于根据检索请求类型,构建对应于所述检索请求类型的检索语句;其中,所述检索请求类型包括:敏感路径检索请求、敏感代码关键词检索请求、敏感文件名检索请求;
12.检索模块,用于将所述检索语句在所述项目信息中进行检索,获得对应于所述检索语句的检索结果;其中,所述检索结果为对应于所述泄露代码关键词的位置信息。
13.本技术实施例第三方面提供了一种电子装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述本技术实施例第一方面提供的泄露代码检索方法中的各步骤。
14.本技术实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本技术实施例第一方面提供的泄露代码检索方法中的各步骤。
15.由上可见,根据本技术方案所提供的泄露代码检索方法、装置及计算机可读存储介质,当接收到对应于泄露代码关键词的检索指令时,爬取对应于泄露代码关键词的项目信息;根据检索请求类型,构建对应于检索请求类型的检索语句;其中,检索请求类型包括:敏感路径检索请求、敏感代码关键词检索请求、敏感文件名检索请求;将检索语句在项目信息中进行检索,得到对应于检索语句的检索结果;其中,检索结果为对应于泄露代码关键词的位置信息。通过本技术方案的实施,根据检索请求类型构建检索语句,并在对应于泄露代码关键词的项目信息进行检索,从检索结果中获到泄露代码的位置信息,从而有效地提高泄露代码检索的效率。
附图说明
16.图1为本技术第一实施例提供的泄露代码检索方法的基本流程示意图;
17.图2为本技术第二实施例提供的泄露代码检索方法的细化流程示意图;
18.图3为本技术第三实施例提供的一种泄露代码检索装置的模块示意图;
19.图4为本技术第四实施例提供的电子装置的结构示意图。
具体实施方式
20.为了使本技术的发明目的、技术方案及优点能够更加的明显和易懂,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而非全部实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
21.为了解决相关技术在检索泄露代码时采用api接口方式受到限制且不能并行检索的问题,本技术第一实施例提供了一种泄露代码检索方法,该方法是github平台上实施的,如图1为本实施例提供的泄露代码检索方法的基本流程图,该泄露代码检索方法包括以下步骤:
22.步骤101、当接收到对应于泄露代码关键词的检索指令时,爬取对应于泄露代码关键词的项目信息。
23.具体的,在本实施例中,根据用户输入的与泄露代码有关的关键词,对所有与该关键词相关的项目进行爬取,得到对应于该关键词的项目信息,例如项目名称、项目项目创建人信息等。
24.在本实施例一些实施方式中,在爬取对应于泄露代码关键词的项目信息的步骤之前,还包括:获取账户名和账户口令,根据爬虫技术对账户名和账户口令进行身份认证;当身份认证通过时,执行爬取对应于泄露代码关键词的项目信息的步骤。
25.具体的,在本实施例中,在进行爬取对应于泄露代码的项目信息之前还会进行身份认证,通过从预先配置好的文件例如config文件中获取登录github平台的账户名和账户口令,通过爬虫技术请求进行身份认证,在认证通过时,执行爬取对应于泄露代码关键词的
项目信息的步骤。
26.在本实施例另一些实施方式中,在爬取对应于泄露代码关键词的项目信息的步骤之后,还包括:将爬取得到的项目信息进行去重;基于去重得到的项目信息生成项目列表的步骤。
27.具体的,在本实施例中,根据对应于泄露代码的关键词进行爬取得到的相关项目信息可能会存在重复的情况,因此可将爬取得到的项目信息进行去重处理,并根据去重处理后的项目信息生成项目列表total_project_list。
28.步骤102、根据检索请求类型,构建对应于检索请求类型的检索语句。
29.具体的,本实施例中检索请求类型包括敏感路径检索请求、敏感代码关键词检索请求、敏感文件名检索请求。在实际检索时,需要对检索结果中的多项信息再进行处理,以获得更多细致的信息,因此可通过不同类型的检索请求再构建对应的检索语句以获取更精确的信息。
30.在本实施例一些实施方式中,根据检索请求类型,构建对应于检索请求类型的检索语句的步骤,包括:获取预设的存储文件;其中,存储文件用于存储对应于检索请求类型的检索词;检索词包括:敏感路径名、敏感代码关键词、敏感文件名;根据检索请求类型,读取对应于检索请求类型的存储文件中的检索词;将检索词与检索语法进行拼接,构建对应于检索请求类型的检索语句;其中,检索语法包括:公开的检索语法、未公开的检索语法。
31.具体的,本实施例中对应于检索请求类型的检索语句是通过将该检索请求类型的检索词与检索语法拼接得到的,通过读取预先配置的存储文件中的内容,获得相应检索请求类型的检索词,应当说明的是,本实施例中相应检索请求类型的检索词是存储在已配置好的存储文件中,例如配置path.db文件保存敏感路径名,敏感路径名可以是敏感文件链接、敏感文件后缀等,配置file.db文件保存敏感文件名称,配置info.db文件保存敏感代码关键词。通常技术公司都会有自己的一套命名方式以及代码规范方式,将这些规范的检索信息存储至对应的文件中,通过使用这些已配置文件中的检索词,可以缩小检索范围,从而增加检索速度,也便于技术公司对这些检索信息进行管理。检索语法包括github平台公开的检索语法例如filename、in:file以及未公开的检索语法例如-repo、or、and、not,通过检索语法可以对项目列表中的项目信息批量检索和排除。
32.进一步地,在本实施例的一些实施方式中,将检索词与检索语法进行拼接,构建对应于检索请求类型的检索语句的步骤,包括:将敏感路径名与公开的检索语法进行拼接,构建敏感路径检索语句;将敏感代码关键词与未公开的检索语法进行拼接,构建敏感代码关键词检索语句;将敏感文件名与公开的检索语法进行拼接,构建敏感文件名检索语句。
33.具体的,在本实施例中,敏感路径检索语句是通过将从path.db文件读取得到的敏感路径名与公开的检索语法filename拼接构建得到的,敏感代码关键词检索语句是通过将从info.db文件读取得到的敏感代码关键词与未公开的检索语法or拼接构建得到的,敏感文件名检索语句是通过将从file.db文件读取得到的敏感敏感文件名与公开的检索语法filename拼接构建得到的。
34.步骤103、将检索语句在项目信息中进行检索,得到对应于检索语句的检索结果

35.具体的,本实施例中的检索结果为对应于泄露代码关键词的位置信息,通过将检索语句在已获得的项目信息中进行检索,得到泄露代码关键词的位置信息,例如泄露代码
所在文件的路径名称,泄露代码所在文件的名称、泄露代码在整个代码内容中的位置以及该位置的上下代码片段信息。
36.在本实施例一些实施方式中,将所述检索语句在项目信息中进行检索的步骤,包括:将检索语句在项目列表内的项目信息中进行检索。
37.具体的,本实施例中的检索语句是在去重后得到的项目列表中的项目信息范围里进行检索的。
38.进一步地,在本实施例的一些实施方式中,将检索语句在项目信息中进行检索,得到对应于检索语句的检索结果的步骤,包括:将敏感路径检索语句在项目信息中进行检索,得到对应于敏感路径检索语句的检索结果;将敏感文件名检索语句在敏感路径检索语句的检索结果中进行检索,获得对应于敏感文件名检索语句的检索结果;将敏感代码关键词检索语句在敏感文件名检索语句的检索结果中进行检索,获得对应于敏感代码关键词检索语句的检索结果。
39.具体的,在本实施例中,通过将敏感路径检索语句在项目列表内的项目信息范围内进行检索,可以得到与泄露代码相关的敏感路径信息,通过将敏感文件名检索语句在敏感路径检索语句的检索结果内进行检索,可以获得与泄露代码相关的敏感文件信息如敏感文件名称,通过将敏感代码关键词检索语句在敏感文件名检索语句的检索结果内进行检索,可以得到敏感代码关键词在整个代码内容中的位置以及该位置的上下代码片段信息。通过不同类型的检索语句,可以对与泄露代码有关的敏感路径进行检索,从而对与泄露代码有关的敏感文件名进行检索,进而可对与泄露代码有关的敏感代码内容进行检索。
40.再进一步地,在本实施例一些实施方式中,将敏感代码关键词检索语句在敏感文件名检索语句的检索结果中进行检索,获得对应于敏感代码关键词检索语句的检索结果的步骤,包括:在读取到的所有敏感代码关键词中依次提取预设数量的敏感代码关键词;将提取的敏感代码关键词与未公开的检索语法进行拼接,并依次在敏感文件名检索语句的检索结果中进行检索,得到对应于敏感代码关键词检索语句的检索结果。
41.具体的,在本实施例中,将敏感代码关键词检索语句在敏感文件名检索语句的检索结果中进行检索时,是将预设数量的敏感代码关键词与未公开的检索语法进行拼接,例如每次提取5个敏感代码关键词与未公开的检索语法or进行拼接,然后依次在敏感文件名检索语句的检索结果中进行检索,从而获得该敏感代码关键词在整个代码内容中的位置以及该位置的上下代码片段信息。
42.基于本技术实施例的上述技术方案,当接收到对应于泄露代码关键词的检索指令时,爬取对应于泄露代码关键词的项目信息;根据检索请求类型,构建对应于检索请求类型的检索语句;其中,检索请求类型包括:敏感路径检索请求、敏感代码关键词检索请求、敏感文件名检索请求;将检索语句在项目信息中进行检索,得到对应于检索语句的检索结果;其中,检索结果为对应于泄露代码关键词的位置信息。通过本技术方案的实施,根据检索请求类型构建检索语句,并在对应于泄露代码关键词的项目信息进行检索,从检索结果中获到泄露代码的位置信息,从而有效地提高泄露代码检索的效率。
43.图2中的方法为本技术第二实施例提供的一种细化的泄露代码检索方法,该泄露代码检索方法包括:
44.步骤201、当接收到对应于泄露代码关键词的检索指令时,爬取对应于泄露代码关
键词的项目信息。
45.在本实施例中,根据用户输入的与泄露代码有关的关键词,对所有与该关键词相关的项目进行爬取,得到对应于该关键词的项目信息,例如项目名称、项目项目创建人信息等。
46.步骤202、将敏感路径名与公开的检索语法进行拼接,构建敏感路径检索语句。
47.步骤203、将敏感代码关键词与未公开的检索语法进行拼接,构建敏感代码关键词检索语句。
48.步骤204、将敏感文件名与公开的检索语法进行拼接,构建敏感文件名检索语句。
49.在本实施例中,敏感路径检索语句是通过将从path.db文件读取得到的敏感路径名与公开的检索语法filename拼接构建得到的,敏感代码关键词检索语句是通过将从info.db文件读取得到的敏感代码关键词与未公开的检索语法or拼接构建得到的,敏感文件名检索语句是通过将从file.db文件读取得到的敏感敏感文件名与公开的检索语法filename拼接构建得到的。
50.步骤205、将敏感路径检索语句在项目信息中进行检索,得到对应于敏感路径检索语句的检索结果。
51.步骤206、将敏感文件名检索语句在敏感路径检索语句的检索结果中进行检索,获得对应于敏感文件名检索语句的检索结果。
52.步骤207、将敏感代码关键词检索语句在敏感文件名检索语句的检索结果中进行检索,获得对应于敏感代码关键词检索语句的检索结果。
53.在本实施例中,通过将敏感路径检索语句在项目列表内的项目信息范围内进行检索,可以得到与泄露代码相关的敏感路径信息,通过将敏感文件名检索语句在敏感路径检索语句的检索结果内进行检索,可以获得与泄露代码相关的敏感文件信息如敏感文件名称,通过将敏感代码关键词检索语句在敏感文件名检索语句的检索结果内进行检索,可以得到敏感代码关键词在整个代码内容中的位置以及该位置的上下代码片段信息。通过不同类型的检索语句,可以对与泄露代码有关的敏感路径进行检索,从而对与泄露代码有关的敏感文件名进行检索,进而可对与泄露代码有关的敏感代码内容进行检索。
54.应当理解的是,本实施例中各步骤的序号的大小并不意味着步骤执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成唯一限定。
55.基于本技术实施例的上述技术方案,当接收到对应于泄露代码关键词的检索指令时,爬取对应于泄露代码关键词的项目信息;根据检索请求类型,构建对应于检索请求类型的检索语句;其中,检索请求类型包括:敏感路径检索请求、敏感代码关键词检索请求、敏感文件名检索请求;将检索语句在项目信息中进行检索,得到对应于检索语句的检索结果;其中,检索结果为对应于泄露代码关键词的位置信息。通过本技术方案的实施,根据检索请求类型构建检索语句,并在对应于泄露代码关键词的项目信息进行检索,从检索结果中获到泄露代码的位置信息,从而有效地提高泄露代码检索的效率。
56.图3为本技术第三实施例提供的一种泄露代码检索装置。该泄露代码检索装置可用于实现前述实施例中的泄露代码检索方法。如图3所示,该泄露代码检索主要包括:
57.爬取模块301,用于当接收到泄露代码关键词的检索指令时,爬取对应于泄露代码
关键词的项目信息。
58.构建模块302,用于根据检索请求类型,构建对应于检索请求类型的检索语句;其中,检索请求类型包括:敏感路径检索请求、敏感代码关键词检索请求、敏感文件名检索请求。
59.检索模块303,用于将检索语句在项目信息中进行检索,获得对应于检索语句的检索结果;其中,检索结果为对应于泄露代码关键词的位置信息。
60.在本实施例的一些实施方式中,泄露代码检索装置还包括:生成模块,用于在爬取对应于泄露代码关键词的项目信息之后,将爬取得到的项目信息进行去重;基于去重得到的项目信息生成项目列表。
61.在本实施例的一些实施方式中,检索模块303具体用于:将检索语句在项目信息中进行检索。
62.在本实施例的一些实施方式中,构建模块302具体用于:获取预设的存储文件;其中,存储文件用于存储对应于检索请求类型的检索词;检索词包括:敏感路径名、敏感代码关键词、敏感文件名;根据检索请求类型,读取对应于检索请求类型的存储文件中的检索词;将检索词与检索语法进行拼接,构建对应于检索请求类型的检索语句;其中,检索语法包括:公开的检索语法、未公开的检索语法。
63.进一步地,在本实施例的一些实施方式中,构建模块302还用于:将敏感路径名与公开的检索语法进行拼接,构建敏感路径检索语句;将敏感代码关键词与未公开的检索语法进行拼接,构建敏感代码关键词检索语句;将敏感文件名与公开的检索语法进行拼接,构建所述敏感文件名检索语句。
64.在本实施例的另一些实施方式中,检索模块303具体用于:将敏感路径检索语句在项目列表内的项目信息中进行检索,得到对应于敏感路径检索语句的检索结果;将敏感文件名检索语句在敏感路径检索语句的检索结果中进行检索,获得对应于敏感文件名检索语句的检索结果;将敏感代码关键词检索语句在敏感文件名检索语句的检索结果中进行检索,获得对应于敏感代码关键词检索语句的检索结果。
65.进一步地,在本实施例的另一些实施方式中,检索模块303还用于:在读取到的所有敏感代码关键词中依次提取预设数量的敏感代码关键词;将提取的敏感代码关键词依次与未公开的检索语法进行拼接,并依次在敏感文件名检索语句的检索结果中进行检索,得到对应于敏感代码关键词检索语句的检索结果。
66.应当说明的是,第一、二实施例中的泄露代码检索方法均可基于本实施例提供的泄露代码检索装置实现,所属领域的普通技术人员可以清楚的了解到,为描述的方便和简洁,本实施例中所描述的泄露代码检索装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
67.根据本实施例所提供的泄露代码检索装置,当接收到对应于泄露代码关键词的检索指令时,爬取对应于泄露代码关键词的项目信息;根据检索请求类型,构建对应于检索请求类型的检索语句;其中,检索请求类型包括:敏感路径检索请求、敏感代码关键词检索请求、敏感文件名检索请求;将检索语句在项目信息中进行检索,得到对应于检索语句的检索结果;其中,检索结果为对应于泄露代码关键词的位置信息。通过本技术方案的实施,根据检索请求类型构建检索语句,并在对应于泄露代码关键词的项目信息进行检索,从检索结
果中获到泄露代码的位置信息,从而有效地提高泄露代码检索的效率。
68.请参阅图4,图4为本技术第四实施例提供的一种电子装置。该电子装置可用于实现前述实施例中的泄露代码检索方法。如图4所示,该电子装置主要包括:
69.存储器401、处理器402及存储在存储器401上并可在处理器402上运行的计算机程序403,存储器401和处理器402通过总线连接。处理器402执行该计算机程序403时,实现前述实施例中的自动检测方法。其中,处理器的数量可以是一个或多个。
70.存储器401可以是高速随机存取记忆体(ram,random access memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器401用于存储可执行程序代码,处理器402与存储器401耦合。
71.进一步的,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述图4所示实施例中的存储器。
72.该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述实施例中的快捷操作方法。进一步的,该计算机可存储介质还可以是u盘、移动硬盘、只读存储器(rom,read-only memory)、ram、磁碟或者光盘等各种可以存储程序代码的介质。
73.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
74.作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
75.另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
76.集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
77.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本技术所必须的。
78.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
79.以上为对本技术所提供的快捷操作方法、装置及计算机可读存储介质的描述,对于本领域的技术人员,依据本技术实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1