一种基于编程语言库的安全加固方法及设备与流程

文档序号:30163318发布日期:2022-05-26 09:04阅读:79来源:国知局
一种基于编程语言库的安全加固方法及设备与流程

1.本技术涉及计算机技术领域,具体涉及一种基于编程语言库的安全加固方法及设备。


背景技术:

2.编程语言是指计算机能够接受和处理的、具有一定语法规则的语言,比如jquery,jquery是一个快速、简洁的javascript框架,它封装了javascript常用的功能代码,在提供简便的javascript设计模式的基础上,实现了对于html文档操作、事件处理、动画设计和ajax交互的优化。
3.然而,随着jquery版本的不断发行,老版本jquery的安全漏洞问题如xss问题也日渐突出,因此,在搭建网站时为保证网站的安全性往往需要对jquery进行安全加固。目前的jquery安全加固通常采用手工方式,但是针对依赖jquery版本较多的大型网站,手工加固可能会出现漏换漏改的情况,达不到预期的安全加固效果。


技术实现要素:

4.为了解决上述问题,本技术提出了一种基于编程语言库的安全加固方法,包括:根据预设的正则表达式,从存储有脚本文件的目标文件夹中,获取与正则表达式相匹配的编程语言脚本;根据预设的脚本字典,对编程语言脚本对应的脚本名称进行重命名,以得到重命名后的指定脚本名称;确定引用编程语言脚本的超文本标记语言文档,并根据指定脚本名称,对超文本标记语言文档中所引用的编程语言脚本的名称进行修改。
5.在本技术的一种实现方式中,得到重命名后的指定脚本名称之后,方法还包括:响应于针对编程语言脚本的扫描操作,对编程语言脚本的版本号进行模糊处理;模糊处理用于将编程语言脚本的版本号修改为与原始状态不同的模糊版本号。
6.在本技术的一种实现方式中,获取与正则表达式相匹配的编程语言脚本,具体包括:根据预设的正则表达式,从存储有脚本文件的目标文件夹中匹配对应的编程语言脚本,并确定编程语言脚本的存储路径以及脚本名称;将存储路径写入路径日志中,以及将脚本名称写入名称日志中。
7.在本技术的一种实现方式中,对编程语言脚本对应的脚本名称进行重命名之前,方法还包括:获取多个编程语言脚本的脚本名称中所包含的版本信息,根据版本信息中的主版本号,对多个编程语言脚本进行类别划分;确定各类别对应的版本信息定义规则,根据版本信息定义规则,对多个编程语言脚本的版本信息进行定义,以生成脚本字典。
8.本技术实施例提供了一种应用场景下的基于编程语言库的安全加固设备,设备包括:
9.至少一个处理器;以及,
10.与至少一个处理器通信连接的存储器;其中,
11.存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以
使至少一个处理器能够:
12.根据预设的正则表达式,从存储有脚本文件的目标文件夹中,获取与正则表达式相匹配的编程语言脚本;
13.根据预设的脚本字典,对编程语言脚本对应的脚本名称进行重命名,以得到重命名后的指定脚本名称;
14.确定引用编程语言脚本的超文本标记语言文档,并根据指定脚本名称,对超文本标记语言文档中所引用的编程语言脚本的名称进行修改。
15.本技术实施例提供了一种基于编程语言库的安全加固方法,方法包括:根据预设的正则表达式,从存储有脚本文件的目标文件夹中,获取与正则表达式相匹配的编程语言脚本;获取编程语言脚本的安全脚本,并对安全脚本对应的脚本名称进行重命名,以得到重命名后的指定脚本名称;删除所述目标文件夹中的编程语言脚本,并将安全脚本迁移至编程语言脚本对应的存储路径处;确定引用编程语言脚本的超文本标记语言文档;根据指定脚本名称,对超文本标记语言文档中所引用的编程语言脚本的名称进行修改,并在超文本标记语言文档中添加版本迁移辅助脚本的引用地址。
16.在本技术的一种实现方式中,得到重命名后的指定脚本名称之后,方法还包括:获取版本迁移辅助脚本,并将版本迁移辅助脚本存储至目标文件夹的根目录处。
17.在本技术的一种实现方式中,编程语言脚本为jquery脚本。
18.在本技术的一种实现方式中,安全脚本的第二版本号高于编程语言脚本的第一版本号。
19.本技术实施例提供了另一种应用场景下的基于编程语言库的安全加固设备,设备包括:
20.至少一个处理器;以及,
21.与至少一个处理器通信连接的存储器;其中,
22.存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:
23.根据预设的正则表达式,从存储有脚本文件的目标文件夹中,获取与正则表达式相匹配的编程语言脚本;
24.获取编程语言脚本的安全脚本,并对安全脚本对应的脚本名称进行重命名,以得到重命名后的指定脚本名称;
25.删除目标文件夹中的编程语言脚本,并将安全脚本迁移至编程语言脚本对应的存储路径处;
26.确定引用编程语言脚本的超文本标记语言文档;
27.根据指定脚本名称,对超文本标记语言文档中所引用的编程语言脚本的名称进行修改,并在超文本标记语言文档中添加版本迁移辅助脚本的引用地址。
28.通过本技术提出的一种基于编程语言库的安全加固方法能够带来如下有益效果:
29.通过正则表达式匹配出编程语言脚本,对编程语言脚本的脚本名称进行重命名,并对编程语言脚本的版本号进行模糊处理,这样在不更改超文本标记语言文档的引用程序的基础上,就能够实现对于编程语言脚本的安全加固,稳定性更高,且更为便捷;获取编程语言脚本的安全脚本,并将原本的编程语言脚本替换为高版本的安全脚本,这样通过脚本
版本的迁移替换避免了低版本脚本可能存在的安全漏洞,安全性更高,且在超文本标记语言文档中添加版本迁移辅助脚本的引用地址,实现了不同版本的编程语言脚本之间的兼容。
附图说明
30.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
31.图1为本技术实施例提供的一种基于编程语言库的安全加固方法的流程示意图;
32.图2为本技术实施例提供的一种执行流程示意图;
33.图3为本技术实施例提供的另一种基于编程语言库的安全加固方法的流程示意图;
34.图4为本技术实施例提供的另一种执行流程示意图;
35.图5为本技术实施例提供的一种应用场景下的基于编程语言库的安全加固设备的结构示意图;
36.图6为本技术实施例提供的另一种应用场景下的基于编程语言库的安全加固设备的结构示意图。
具体实施方式
37.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
38.以下结合附图,详细说明本技术各实施例提供的技术方案。
39.如图1所示,本技术实施例提供的一种基于编程语言库的安全加固方法,包括:
40.s101:根据预设的正则表达式,从存储有脚本文件的目标文件夹中,获取与正则表达式相匹配的编程语言脚本。
41.正则表达式为预先编写好的匹配规则,用于从存储有脚本文件的目标文件夹中匹配相对应的编程语言脚本(比如,jquery脚本)。服务器通过正则表达式进行字符串匹配能够确定与其相匹配的jquery脚本的存储路径,以此从存储有脚本文件的目标文件夹中来获取该jquery脚本。在获取该jquery脚本的同时,服务器也确定了jquery脚本的存储路径以及脚本名称,并将存储路径写入路径日志中,脚本名称写入名称日志中。服务器进行匹配信息日志的记录,以便在后期出错时可以根据日志来判断出错原因。
42.s102:根据预设的脚本字典,对编程语言脚本对应的脚本名称进行重命名,以得到重命名后的指定脚本名称。
43.对jquery脚本进行安全加固实质上就是隐藏其真实版本信息的过程,而在获取到jquery脚本之后,若要隐藏其版本信息,需通过脚本字典中的规则对jquery脚本进行脚本名称的重命名。
44.在一个实施例中,脚本字典为自定义的脚本名称重命名规则。服务器获取多个jquery脚本的脚本名称中所包含的版本信息,根据版本信息中的主版本号,对多个jquery
脚本进行类别划分。比如,服务器获取到的jquery脚本名称分别为jquery-3.0.0.js、jquery-3.1.1.js、jquery-2.1.4.js、jquery-1.11.1.js,对于名称为jquery-3.0.0.js的脚本名称来说,脚本名称中包括易暴露的版本信息3.0.0,其中,版本号的数字从左至右依次表示为主版本号、子版本号和阶段版本号。
45.服务器可根据版本信息中的主版本号,对获取到的多个jquery脚本进行类别划分,并对各类别分别制定对应的版本信息定义规则,也就是说,主版本号相同的被列为同一类别,具有相同的版本信息定义规则。针对各类别,服务器可根据版本信息定义规则,对该类别下包含的各jquery脚本的版本信息进行定义,从而根据重新定义后的版本信息,确定jquery脚本的原始版本信息与重新定义的版本信息之间的映射关系,以此生成面向多个jquery脚本的脚本字典,脚本字典中包括不同版本号的jquery脚本重新定义后的脚本名称。版本信息定义规则是对脚本名称中的版本信息进行定义,定义时对于主版本号信息进行一定程度的保留,其他版本号信息进行模糊定义。比如,jquery-2.1.4.js的主版本号为2,jquery-1.11.1.js主版本号为1,分别属于两种不同的类别,而jquery-3.0.0.js、jquery-3.1.1.js由于主版本号为3属于同一类别。通过版本自定义规则,将jquery-1.11.1.js定义为jquery.n1.js,jquery-2.1.4.js定义为jquery.n2.js,jquery-3.0.0.js、jquery-3.1.1.js定义为jquery.n3.js。这样,脚本字典中便具有针对多个不同版本的jquery脚本的定义规则,通过原始版本信息与重新定义的版本信息之间的映射关系,可对脚本名称中易暴露的版本信息进行隐藏,实现安全加固的目的。
46.在对jquery脚本的脚本名称进行隐藏后,服务器还会响应于针对该jquery脚本的扫描操作,在打开jquery之后,对jquery脚本的版本号进行模糊处理。比如,将jquery-1.11.1.js的版本号1.11.1修改为与原始状态不同的模糊版本号9.9.9。需要说明的是,在进行模糊处理时,模糊版本号应保证与原始版本号的主版本号、子版本号和阶段版本号均不同,以通过模糊版本号,实现对jquery脚本的版本信息的再次加固。
47.s103:确定引用编程语言脚本的超文本标记语言文档,并根据指定脚本名称,对超文本标记语言文档中所引用的编程语言脚本的名称进行修改。
48.服务器确定引用jquery脚本的超文本标记语言(hyper text markup language,html)文档,并从该html文档中确定jquery脚本的引用地址以及jquery脚本的脚本名称。然后根据预设的脚本字典,确定与该jquery脚本的脚本名称存在映射关系的指定脚本名称,将该jquery脚本的原始脚本名称更改为指定脚本名称。比如,html文档中jquery脚本的引用地址为《script src="/src/lib/jquery-3.0.0.js"》《/script》,且该jquery脚本的指定脚本名称为jquery.n3.js,服务器将对应脚本名称改为jquery.n3.js,同时将脚本引用地址改为《script src="/src/lib/jquery-3.0.0.js"》《/script》。至此,便完成了对于jquery脚本的安全加固。此种加固方式不需要额外修改引用代码,稳定性较高。
49.图2为本技术实施例提供的一种执行流程示意图。如图2所示,服务器通过正则表达式扫描目标文件夹所在的目标路径,以获取jquery脚本的脚本名称及存储路径。根据预设的脚本字典,对获取到的jquery脚本进行重命名,并将引用该jquery脚本的html文档中的引用名称及引用路径进行修改。
50.以上为本技术实施例提供的一种基于编程语言库的安全加固方法,适用于要求稳定性较高的站点。本技术实施例还提供了一种基于编程语言库的安全加固方法,旨在提高
加固过程的安全性。流程如图3所示:
51.s301:根据预设的正则表达式,从存储有脚本文件的目标文件夹中,获取与正则表达式相匹配的编程语言脚本。
52.服务器通过正则表达式进行字符串匹配能够确定与其相匹配的jquery脚本的存储路径,以此从存储有脚本文件的目标文件夹中来获取该jquery脚本。在获取该jquery脚本的同时,服务器也确定了jquery脚本的存储路径,并将存储路径写入路径日志中,这样在后期出错时可以根据日志来判断出错原因。
53.s302:获取编程语言脚本的安全脚本,并对安全脚本对应的脚本名称进行重命名,以得到重命名后的指定脚本名称。
54.由于低版本(也称作老版本)的jquery脚本安全性较低,在进行安全加固时一般需要通过采用高版本的安全脚本去替换原本的低版本jquery脚本,以此来保证站点的安全性。比如,jquery-3.0.0.js的高版本(也称作新版本)安全脚本可以为jquery-3.4.0.js。在获取到安全脚本后,服务器还需对其脚本名称进行重命名,以进一步保证脚本的安全性。需要说明的是,此处的重命名可以通过上文所提到的脚本字典来实现。
55.但是,在引用高版本的安全脚本时易出现兼容性问题,为保证jquery脚本的顺利迁移,服务器在对jquery脚本的高版本安全脚本进行重命名后,需获取获取版本迁移辅助脚本jquery-migrate.js,并将jquery-migrate.js存储至目标文件夹的根目录处,以供后续引用。
56.s303:删除目标文件夹中的编程语言脚本,并将安全脚本迁移至编程语言脚本对应的存储路径处。
57.在目标文件夹根目录下添加版本迁移辅助脚本之后,服务器需删除目标文件夹中的jquery脚本,并将安全脚本迁移至jquery脚本对应的存储路径处,以此来实现jquery脚本的版本迁移。
58.s304:确定引用编程语言脚本的超文本标记语言文档。
59.服务器确定引用jquery脚本的超文本标记语言(hyper text markup language,html)文档,并从该html文档中确定jquery脚本的引用地址以及jquery脚本的脚本名称。比如,jquery-3.0.0.js脚本的引用地址为《script src="/src/lib/jquery-3.0.0.js"》《/script》。
60.s305:根据指定脚本名称,对超文本标记语言文档中所引用的编程语言脚本的名称进行修改,并在超文本标记语言文档中添加针对版本迁移辅助脚本的引用地址。
61.服务器将引用地址中的jquery脚本的原始脚本名称替换为安全脚本的指定脚本名称,比如,jquery-3.0.0.js的高版本安全脚本为jquery-3.4.0.js,jquery-3.4.0.js的脚本名称进行重名后为jquery.n3.js,服务器能够将jquery-3.0.0.js改为jquery.n3.js,相应的,引用地址也就更改为了《script src="/src/lib/jquery.n3.js"》《/script》。此时,服务器还需在jquery脚本的引用路径下添加版本迁移辅助脚本的引用地址即《script src="/src/lib/jquery-migrate.js"》《/script》,通过添加版本迁移辅助脚本,能够在使用高版本的安全脚本替换原始的低版jquery脚本之后,满足了接口的向前兼容性,在实现低版本jquery脚本安全加固的同时也做到了低版本脚本的兼容。此种加固方式安全性更高,但是加固后可能会出现版本的兼容性问题,因此往往需要额外修改引用代码。
62.图4为本技术实施例提供的另一种执行流程示意图。如图4所示,窗体程序扫描目标文件夹所在的目标路径以确定jquery脚本的存储路径,获取该jquery脚本的高版本安全脚本以及版本迁移辅助脚本,并将迁移辅助脚本放置在目标文件夹的根目录下。在原本的jquery脚本所在存储路径处,将高版本安全脚本替换掉原本的jquery脚本,并修改引用jquery脚本的html文档中的脚本名称。
63.服务器通过winform窗体技术实现jquery脚本加固过程的可视化。站点运维人员可通过窗体程序构建的可视化界面进行触发操作,以调用服务器执行相应的加固方法,实现jquery脚本的安全加固。
64.以上为本技术提出的方法实施例。基于同样的思路,本技术的一些实施例还提供了上述方法对应的设备。
65.图5为本技术实施例提供的一种应用场景下的基于编程语言库的安全加固设备的结构示意图。如图5所示,设备包括:
66.至少一个处理器;以及,
67.与至少一个处理器通信连接的存储器;其中,
68.存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:
69.根据预设的正则表达式,从存储有脚本文件的目标文件夹中,获取与正则表达式相匹配的编程语言脚本;
70.根据预设的脚本字典,对编程语言脚本对应的脚本名称进行重命名,以得到重命名后的指定脚本名称;
71.确定引用编程语言脚本的超文本标记语言文档,并根据指定脚本名称,对超文本标记语言文档中所引用的编程语言脚本的名称进行修改。
72.图6为本技术实施例提供的另一种应用场景下的基于编程语言库的安全加固设备的结构示意图。如图6所示,设备包括:
73.至少一个处理器;以及,
74.与至少一个处理器通信连接的存储器;其中,
75.存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器还能够:
76.根据预设的正则表达式,从存储有脚本文件的目标文件夹中,获取与正则表达式相匹配的编程语言脚本;
77.获取编程语言脚本的安全脚本,并对安全脚本对应的脚本名称进行重命名,以得到重命名后的指定脚本名称;
78.删除目标文件夹中的编程语言脚本,并将安全脚本迁移至编程语言脚本对应的存储路径处;
79.确定引用编程语言脚本的超文本标记语言文档;
80.根据指定脚本名称,对超文本标记语言文档中所引用的编程语言脚本的名称进行修改,并在超文本标记语言文档中添加版本迁移辅助脚本的引用地址。
81.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施
例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
82.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
83.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1