CN115065534A - 动态脚本攻击拦截方法、装置、电子设备及可读存储介质 - Google Patents
动态脚本攻击拦截方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN115065534A CN115065534A CN202210673528.XA CN202210673528A CN115065534A CN 115065534 A CN115065534 A CN 115065534A CN 202210673528 A CN202210673528 A CN 202210673528A CN 115065534 A CN115065534 A CN 115065534A
- Authority
- CN
- China
- Prior art keywords
- target
- tag
- label
- script
- dynamic
- 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
- 238000013515 script Methods 0.000 title claims abstract description 118
- 238000000034 method Methods 0.000 title claims abstract description 117
- 238000001514 detection method Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 239000008186 active pharmaceutical agent Substances 0.000 description 10
- 230000000903 blocking effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 239000000243 solution Substances 0.000 description 7
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1475—Passive attacks, e.g. eavesdropping or listening without modification of the traffic monitored
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本申请的实施例提供了一种动态脚本攻击拦截方法、装置、电子设备及可读存储介质,涉及计算机技术领域。该方法包括:在检测到通过目标方法为创建的第一目标待插入标签动态设置属性时,获取第一目标待插入标签的第一目标属性值,目标方法包括Document.write方法,第一目标待插入标签为待插入已完成渲染的当前网站页面的目标类型的标签;根据第一目标属性值,判断第一目标待插入标签是否合法;在确定第一目标待插入标签不合法的情况下,对第一目标待插入标签进行拦截。如此,至少可以避免一部分动态脚本通过Document.write方法注入到页面中,从而提高安全性。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种动态脚本攻击拦截方法、装置、电子设备及可读存储介质。
背景技术
XSS跨站脚本注入攻击通常为:攻击者或者运营商会向页面中注入一个<script>脚本,具体攻击操作都在脚本中实现。当前是通过MutationObserver API监听Web页面有没有script标签动态生成,在有的情况下,拦截该动态生成的script标签,并将该script标签上报系统以判断是否为恶意注入的script,若是则使用removeChild()删除。
然而,除了静态脚本,XSS还包含通过javaScript动态生成的脚本。针对这种动态脚本,虽然可以使用MutationObserver观察到脚本生成,但是MutationObserver方法仅能在观察到DOM(Document Object Model,文档对象模型)变化后才会执行,也就是说当页面插入动态脚本后才会执行此方法,但此时的脚本已经注入了执行了一次,所以无法在脚本执行之前使用removeChild将其移除,注入的恶意脚本还是会生成,对业务安全有极大对风险性。
发明内容
本申请实施例提供了一种动态脚本攻击拦截方法、装置、电子设备及可读存储介质,其能够避免一些动态脚本的攻击,以提高安全性。
本申请的实施例可以这样实现:
第一方面,本申请实施例提供一种动态脚本攻击拦截方法,所述动态脚本攻击拦截方法包括:
在检测到通过目标方法为创建的第一目标待插入标签动态设置属性时,获取所述第一目标待插入标签的第一目标属性值,其中,所述目标方法包括Document.write方法,所述第一目标待插入标签为待插入已完成渲染的当前网站页面的目标类型的标签;
根据所述第一目标属性值,判断所述第一目标待插入标签是否合法;
在确定所述第一目标待插入标签不合法的情况下,对所述第一目标待插入标签进行拦截。
第二方面,本申请实施例提供一种动态脚本攻击拦截装置,所述装置包括:
属性获得模块,用于在检测到通过目标方法为创建的第一目标待插入标签动态设置属性时,获取所述第一目标待插入标签的第一目标属性值,其中,所述目标方法包括Document.write方法,所述第一目标待插入标签为待插入已完成渲染的当前网站页面的目标类型的标签;
判断模块,用于根据所述第一目标属性值,判断所述第一目标待插入标签是否合法;
处理模块,用于在确定所述第一目标待插入标签不合法的情况下,对所述第一目标待插入标签进行拦截。
第三方面,本申请实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式所述的动态脚本攻击拦截方法。
第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式所述的动态脚本攻击拦截方法。
本申请实施例提供的动态脚本攻击拦截方法、装置、电子设备及可读存储介质,在检测到通过目标方法为动态创建的第一目标待插入标签动态设置属性时,获取该第一目标待插入标签的第一目标属性值,进而基于该第一目标属性值判断该第一目标待插入标签是否合法,在不合法的情况下对该第一目标待插入标签进行拦截。其中,目标方法包括Document.write方法,第一目标待插入标签为待插入已完成渲染的当前网站页面的目标类型的标签。如此,至少可以避免一部分动态脚本通过Document.write方法注入到页面中,从而提高安全性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的电子设备的方框示意图;
图2为本申请实施例提供的动态脚本攻击拦截方法的流程示意图之一;
图3为本申请实施例提供的动态脚本攻击拦截方法的流程示意图之二;
图4为本申请实施例提供的动态脚本攻击拦截装置的方框示意图之一;
图5为本申请实施例提供的动态脚本攻击拦截装置的方框示意图之二。
图标:100-电子设备;110-存储器;120-处理器;130-通信单元;200-动态脚本攻击拦截装置;210-属性获得模块;220-判断模块;230-处理模块;240-修改模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
下面首先对本申请实施例中涉及到的一些概念进行解释说明。
JavaScript:是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。
xss跨站脚本:XSS指的是攻击者漏洞,攻击者向Web页面中注入恶意代码,当用户浏览该页之时,注入的代码会被执行,从而达到攻击的特殊目的。
动态脚本:指页面中那些本来不存在,但是随着代码的执行插入页面的脚本。
HTML标签:HTML标签是由一对尖括号<>及标签名组成的,如<p>。
HTML元素:指的是从开始标签到结束标签的所有代码,通常拥有一定的效果。如<p>这是一段p标签包裹的内容</p>。
DOM:Document Object Model,文档对象模型,Javascript中的DOM将网页中的各个元素都看作一个个对象,从而使网页中的元素也可以被计算机语言获取或者编辑,就可以利用HTML DOM动态地修改网页。
script标签:<script>标签属于HTML标签,可用于定义客户端脚本,称为script脚本,比如JavaScript。
MutationObserver:HTML5的API,提供了一种能在某个范围内的DOM树发生变化时作出适当反应的能力。
createElement:JavaScript API,可以动态创建一个元素。
setAttribute:JavaScript API,可以给元素动态添加各种属性,通过createElement新建一个script元素,可以通过setAttribute给script元素修改各种属性。
Document.write:JavaScript API,用于向当前文档(即DOM)写入内容,可以覆盖页面,也可用于插入一个全新的script元素。
当前一般是通过MutationObserver API监听DOM()树中有没有script标签动态生成,若有,则拦截该script标签,并上报给系统,通过系统判断该script标签是否是恶意注入的,若是,则利用removeChild()删除。
然而,上述针对静态脚本可实现攻击拦截,针对动态脚本则无法及时拦截。在动态脚本插入执行前,监听DOM树变化的拦截方法无效,当页面插入动态脚本后才会拦截,但此时的脚本已经注入了执行了一次,对安全有一定对风险。
为缓解以上情况,本申请实施例提供了一种动态脚本攻击拦截方法、装置、电子设备及可读存储介质,通过重写的javaScript原生的setAttribute方法、Document.write方法,在动态脚本插入DOM树之前、创建脚本时进行捕获,从而提高业务安全性。
值的说明的是,针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得到的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应是发明人在本申请过程中对本申请做出的贡献。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,图1为本申请实施例提供的电子设备100的方框示意图。所述电子设备100可以是,但不限于,用户用于浏览Web页面的智能手机、平板电脑等。所述电子设备100可以包括存储器110、处理器120及通信单元130。所述存储器110、处理器120以及通信单元130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器110用于存储程序或者数据。所述存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器120用于读/写存储器110中存储的数据或程序,并执行相应地功能。比如,存储器110中存储有动态脚本攻击拦截装置200,所述动态脚本攻击拦截装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器120通过运行存储在存储器110内的软件程序以及模块,如本申请实施例中的动态脚本攻击拦截装置200,从而执行各种功能应用以及数据处理,即实现本申请实施例中的动态脚本攻击拦截方法。
通信单元130用于通过网络建立所述电子设备100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
应当理解的是,图1所示的结构仅为电子设备100的结构示意图,所述电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参照图2,图2为本申请实施例提供的动态脚本攻击拦截方法的流程示意图之一。该方法可以应用于上述电子设备100。下面对动态脚本攻击拦截方法的具体流程进行详细阐述。在本实施例中,该方法可以包括步骤S110~步骤S130。
步骤S110,在检测到通过目标方法为创建的第一目标待插入标签动态设置属性时,获取所述第一目标待插入标签的第一目标属性值。
在本实施例中,所述目标方法为可以用于为创建的标签动态设置属性的方法。所述目标方法可以包括Document.write方法、当前网站页面的第一setAttribute方法等,具体可以检测实际需求设置。
所述第一目标待插入标签,为期望插入已完成渲染的当前网站页面的标签、且该标签的类型为目标类型。所述目标类型具体可以结合实际需求确定,比如,包括script类型。该第一目标待插入标签,可以是通过Document.write方法或createElement方法创建的标签。
在确定通过所述目标方法为所述第一目标待插入标签动态设置属性时,可以先获得所述第一目标待插入标签的第一目标属性值。可选地,在所述第一目标待插入标签的属性有多种时,可以结合实际需求获得其中的一种或多种属性值作为所述第一目标属性值。比如,在所述目标类型为script类型时,所述第一目标属性值可以为作为script标签的第一目标待插入标签的引用地址。
步骤S120,根据所述第一目标属性值,判断所述第一目标待插入标签是否合法。
在本实施例中,可以根据先判断所述第一目标属性值是否合法,从而确定该第一目标属性值对应的第一目标待插入标签是否合法。
作为一种可能的实现方式,所述目标类型包括script类型,所述目标属性值包括script标签的引用地址,可以检测所述引用地址是否在预设地址集内,得到检测结果,其中,所述预设地址集中包括预设的多个合法地址或多个不合法地址;根据所述检测结果,确定所述目标待插入标签是否合法。
比如,所述第一目标属性值为第一目标待插入标签对应的引用地址,可以预先设置有黑名单,黑名单中可以包括有多个不合法地址。可以检测所述第一目标待插入标签对应的引用地址,是否存在于所述黑名单中。若存在,则可以确定所述第一目标属性值对应的第一目标待插入标签不合法。若不存在,则可以确定该第一目标待插入标签合法。
可以理解的是,上述标签是否合法的判断方式仅为举例说明,也可结合实际情况采用其他方式进行判断。
步骤S130,在确定所述第一目标待插入标签不合法的情况下,对所述第一目标待插入标签进行拦截。
在确定该第一目标待插入标签不合法的情况下,则可以使所述目标方法停止为该第一目标待插入标签设置属性,从而实现拦截。当然可以理解的是,也可以采用其他方式进行不合法的第一目标待插入标签进行拦截,具体方式在此不进行具体限定。还可以将不合法的第一目标属性值上报给其他系统,以便该系统进行汇总,对所使用的预设地址集进行更改或者提供给另外的系统的或设备使用。
在确定该第一目标待插入标签合合法的情况下,可以继续为该第一目标待插入标签动态设置属性,并在设置完属性后,可以将该第一目标待插入标签插入到对应的所述当前网站页面中。
xss通过javaScript代码可向Web进行动态跨站脚本攻击,可选地,可通过对原生javaScript可进行插入script标签的功能进行重写拦截,从而上报并防止动态脚本对web的攻击。如此,可以至少减少一部分动态脚本的动机。
作为一种可能的实现方式,可以对原Document.write方法及所述当前网站页面的setAttribute方法进行修改,从而得到所述Document.write方法及当前网站页面的第一setAttribute方法,以便在动态设置属性时进行判断,并在确定合法的情况下继续执行属性设置,不合法的情况下则进行拦截。其中,可以在利用方法为动态创建的第一目标待插入标签动态设置属性之前,修改原生Document.write方法及原生setAttribute方法,具体修改时机可以结合实际需求确定。比如,可以在当前网站页面渲染之后,修改该当前网站页面的原生setAttribute方法。
下面描述如何通过重写原生setAttribute方法实现对动态跨站脚本的攻击拦截。
利用setAttribute API可以实现script的代码注入到web中,例如目前有一段动态脚本是这样被注入的。
//创建一个<script>标签
var script=document.createElement('script');
//修改script的属性设置类型为javaScript
script.setAttribute('type','text/javascript');
//设置script标签的引用地址
script.setAttribute('src','http:/xxxx.js');
//将script标签插入到当前页面中
document.getElementsByTagName('body')[0].appendChild(script);
在一种可能的方式中,可以重写原本javaScript的setAttribute的方法,修改其处理流程,监听页面上script标签动态设置时引用地址的值,然后通过拦截上报系统里的黑名单或者白名单,就可以判断该标签的合法性,伪代码如下:
//获取原本的setAttribute
var newSetAttribute=Element.prototype.setAttribute;
//进行重写
Element.prototype.setAttribute=function(name,value){
//匹配到script类型
if(this.tagName=='SCRIPT'&&/^src$/i.test(name)){
//在有黑名单的情况下,如果script是黑名单中的内容,则确定不合法,进行上报拦截;在有白名单的情况下,如果script不是白名单中的内容,则确定不合法,进行上报拦截
if(判断script是否为名单内容){
//不是白名单中的内容或者是黑名单中的内容则上报拦截
return;
}
//执行原生的setAttribute方法
newSetAttribute.apply(this,arguments);
}
}
上诉伪代码中重写了Element.prototype.setAttribute。首先保存原有接口,克隆一份新的setAttribute,然后当有元素调用重写的setAttribute时,检查传入的src引用地址是否存在于白名单中,存在则放行,不存在则视为可疑元素,进行上报并让这段可疑代码不能执行。
下面描述如何通过重写原生document.write方法实现对动态跨站脚本的攻击拦截。
动态跨站脚本攻击可通过使用document.write往页面上注入一些弹窗广告,例如下面代码:
document.write('<scripttype="text/javascript"src="http:/xxxx.js"></script>')
通过document.write可轻而易举的注入外部脚本,执行恶意操作,本申请实施例重构了document.write的方法,伪代码如下:
//克隆一份原生document.write
var write=window.document.write;
//对原生对document.write进行重写
window.document.write=function(string){
//在有黑名单的情况下,如果script是黑名单中的内容,则确定不合法,进行上报拦截;在有白名单的情况下,如果script不是白名单中的内容,则确定不合法,进行上报拦截
if(判断是否为黑白名单内容){
return;
}
//执行原生方法功能
write.apply(document,arguments);
}
}
上诉伪代码中重写document.write,存储了原API的功能,当调用重写的document.write时进行拦截,拉取白名单或白名单进行判断筛选,从而有效拦截document.write的恶意插入。
本申请发明人经研究发现,即使重写了setAttribute依然不保险,可通过iframe嵌套绕过,从而注入恶意脚本。请参照图3,图3为本申请实施例提供的动态脚本攻击拦截方法的流程示意图之二。为了避免上述情况,在本实施例中,所述动态脚本攻击拦截方法还可以包括步骤S140。其中,值得说明的是,步骤S140的具体执行位置不进行具体显示,图3所示顺序仅为一种举例说明。
步骤S140,在检测到动态创建了待插入所述当前网站页面的iframe标签时,修改该iframe标签对应的子页面的原setAttribute方法。
一般在页面中创建了新的iframe时,会将网页中原本的setAttribute设置为iframe的setAttribute。如此,可重新拿到原生的功能,向网页中进行恶意脚本的插入,还会向iframe中进行恶意脚本的插入。
而在本实施例中,为了避免上述情况,在检测到动态创建了待插入所述当前网站页面的iframe标签时,就修改该iframe标签所对应的子页面的原setAttribute方法。修改后得到的Attribute方法在为创建的第二目标待插入标签动态设置属性时,根据所述第二目标待插入标签是否合法,确定是否对所述第二目标待插入标签进行拦截,所述第二目标待插入标签为待插入所述子页面的所述目标类型的标签。如此,当前网站页面和iframe均使用的是修改后的setAttribute,可避免通过原生setAttribute进行恶意脚本的插入。
其中,所述iframe标签可以是通过Document.write方法或createElement方法创建。
为便于描述,将子页面的原setAttribute方法修改后的方法,称为第二setAttribute方法。第二setAttribute方法实现拦截的方式与通过第一setAttribute方法实现动态脚本攻击拦截的方式相同,可以均是在目标类型包括script类型、所述目标属性值包括script标签的引用地址时,检测希望插入该子页面的第二目标待插入标签的引用地址是否在预设地址集内,得到检测结果,其中,所述预设地址集中包括预设的多个合法地址或多个不合法地址;根据所述检测结果,确定第二目标待插入标签是否合法。在合法时,可以将该第二目标待插入标签插入到对应的子页面中,不合法时则对该第二目标待插入标签进行拦截。
下面对拦截嵌套iframe中的setAttribute进行举例说明。
比如,一段伪代码为:
/创建一个<iframe>标签。
var IframeBox=document.createElement('iframe');
//往页面中动态添加新建的iframe
document.body.appendChild(IframeBox);
//设置网页中的setAttribute为iframe的setAttribute
Element.prototype.setAttribute=IframeBox.contentWindow.Element.prototype.setAttribute;
上面伪代码中创建了新的iframe,并将网页中原本的setAttribute设置为iframe的setAttribute,这样可以重新拿到原生的功能,进行恶意脚本的插入。
而在本申请实施例中,在网页动态新建一个iframe时,通过MutationObserver监听,监听如果创建的为iframe时,重写iframe自己的setAttribute方法,监听设置src属性时的值然后通过拦截上报系统里的黑名单或者白名单,判断该标签的合法性进行检测。如此,既可以保证网页的安全,同时保证iframe对应的子页面的安全。
可以理解的是,在利用Document.write在网页动态新建一个iframe时,也可以重写该iframe自己的setAttribute方法,从而保证网页及子页面的安全。
现有防止恶意脚本注入方法中,MutationObserver无法在脚本执行之前删除恶意脚本的漏洞。针对该问题,在本实施例中,通过重写原生setAttribute API,在页面进行动态恶意脚本注入时进行拦截,进而将拦截到的属性值与拦截库中的黑名单或白名单进行对比以确定其合法性,则不合法时则进行拦截,如此可控制恶意脚本的注入,防止恶意脚本的执行。
并且,本申请发明人察觉新建iframe时可绕过重写的setAttribute API,并执行恶意脚本的漏洞;即,发现iframe内的环境和外层window是完全隔离的,重写原生setAttribute方法会被绕过。为提高安全性,在iframe生成时重构了iframe内部的setAttribute,从而阻止漏洞,拦截恶意脚本。
在本实施例中,还通过重写原生document.write,解决通过document.write可以在web注入javaScript恶意代码引发的xss问题。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种动态脚本攻击拦截装置200的实现方式,可选地,该动态脚本攻击拦截装置200可以采用上述图1所示的电子设备100的器件结构。进一步地,请参照图4,图4为本申请实施例提供的动态脚本攻击拦截装置200的方框示意图之一。需要说明的是,本实施例所提供的动态脚本攻击拦截装置200,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。所述动态脚本攻击拦截装置200可以包括:属性获得模块210、判断模块220及处理模块230。
所述属性获得模块210,用于在检测到通过目标方法为创建的第一目标待插入标签动态设置属性时,获取所述第一目标待插入标签的第一目标属性值。其中,所述目标方法包括Document.write方法,所述第一目标待插入标签为待插入已完成渲染的当前网站页面的目标类型的标签。
所述判断模块220,用于根据所述第一目标属性值,判断所述第一目标待插入标签是否合法。
所述处理模块230,用于在确定所述第一目标待插入标签不合法的情况下,对所述第一目标待插入标签进行拦截。
可选地,在本实施例中,所述目标方法还包括所述当前网站页面的第一setAttribute方法,所述第一setAttribute方法为经对所述当前网站页面的原setAttribute方法进行修改后得到的方法,通过所述第一setAttribute方法或Document.write方法实现拦截。
请参照图5,图5为本申请实施例提供的动态脚本攻击拦截装置200的方框示意图之二。所述动态脚本攻击拦截装置200还可以包括修改模块240。
修改模块,用于在检测到动态创建了待插入所述当前网站页面的iframe标签时,修改该iframe标签对应的子页面的原setAttribute方法。其中,修改后得到的setAttribute方法在为创建的第二目标待插入标签动态设置属性时,根据所述第二目标待插入标签是否合法,确定是否对所述第二目标待插入标签进行拦截,所述第二目标待插入标签为待插入所述子页面的所述目标类型的标签。
可选地,在本实施例中,所述iframe标签通过Document.write方法或createElement方法创建。
可选地,在本实施例中,所述目标类型包括script类型,所述目标属性值包括script标签的引用地址,判断目标待插入标签是否合法的方式包括:检测所述引用地址是否在预设地址集内,得到检测结果,其中,所述预设地址集中包括预设的多个合法地址或多个不合法地址;根据所述检测结果,确定所述目标待插入标签是否合法。
可选地,在本实施例中,所述处理模块230还用于在该目标待插入标签合法的情况下,将该目标待插入标签插入到对应的页面中。
可选地,上述模块可以软件或固件(Firmware)的形式存储于图1所示的存储器110中或固化于电子设备100的操作系统(Operating System,OS)中,并可由图1中的处理器120执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器110中。
本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的动态脚本攻击拦截方法。
综上所述,本申请实施例提供一种动态脚本攻击拦截方法、装置、电子设备及可读存储介质,在检测到通过目标方法为动态创建的第一目标待插入标签动态设置属性时,获取该第一目标待插入标签的第一目标属性值,进而基于该第一目标属性值判断该第一目标待插入标签是否合法,在不合法的情况下对该第一目标待插入标签进行拦截。其中,目标方法包括Document.write方法,第一目标待插入标签为待插入已完成渲染的当前网站页面的目标类型的标签。如此,至少可以避免一部分动态脚本通过Document.write方法注入到页面中,从而提高安全性。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的可选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种动态脚本攻击拦截方法,其特征在于,所述动态脚本攻击拦截方法包括:
在检测到通过目标方法为创建的第一目标待插入标签动态设置属性时,获取所述第一目标待插入标签的第一目标属性值,其中,所述目标方法包括Document.write方法,所述第一目标待插入标签为待插入已完成渲染的当前网站页面的目标类型的标签;
根据所述第一目标属性值,判断所述第一目标待插入标签是否合法;
在确定所述第一目标待插入标签不合法的情况下,对所述第一目标待插入标签进行拦截。
2.根据权利要求1所述的动态脚本攻击拦截方法,其特征在于,所述目标方法还包括所述当前网站页面的第一setAttribute方法,所述第一setAttribute方法为经对所述当前网站页面的原setAttribute方法进行修改后得到的方法,通过所述第一setAttribute方法或Document.write方法实现拦截。
3.根据权利要求1或2所述的动态脚本攻击拦截方法,其特征在于,所述动态脚本攻击拦截方法还包括:
在检测到动态创建了待插入所述当前网站页面的iframe标签时,修改该iframe标签对应的子页面的原setAttribute方法,其中,修改后得到的Attribute方法在为创建的第二目标待插入标签动态设置属性时,根据所述第二目标待插入标签是否合法,确定是否对所述第二目标待插入标签进行拦截,所述第二目标待插入标签为待插入所述子页面的所述目标类型的标签。
4.根据权利要求3所述的动态脚本攻击拦截方法,其特征在于,所述iframe标签通过Document.write方法或createElement方法创建。
5.根据权利要求3所述的动态脚本攻击拦截方法,其特征在于,所述目标类型包括script类型,所述目标属性值包括script标签的引用地址,判断目标待插入标签是否合法的步骤包括:
检测所述引用地址是否在预设地址集内,得到检测结果,其中,所述预设地址集中包括预设的多个合法地址或多个不合法地址;
根据所述检测结果,确定所述目标待插入标签是否合法。
6.根据权利要求5所述的动态脚本攻击拦截方法,其特征在于,所述动态脚本攻击拦截方法还包括:
在该目标待插入标签合法的情况下,将该目标待插入标签插入到对应的页面中。
7.一种动态脚本攻击拦截装置,其特征在于,所述装置包括:
属性获得模块,用于在检测到通过目标方法为创建的第一目标待插入标签动态设置属性时,获取所述第一目标待插入标签的第一目标属性值,其中,所述目标方法包括Document.write方法,所述第一目标待插入标签为待插入已完成渲染的当前网站页面的目标类型的标签;
判断模块,用于根据所述第一目标属性值,判断所述第一目标待插入标签是否合法;
处理模块,用于在确定所述第一目标待插入标签不合法的情况下,对所述第一目标待插入标签进行拦截。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
修改模块,用于在检测到动态创建了待插入所述当前网站页面的iframe标签时,修改该iframe标签对应的子页面的原setAttribute方法,其中,修改后得到的setAttribute方法在为创建的第二目标待插入标签动态设置属性时,根据所述第二目标待插入标签是否合法,确定是否对所述第二目标待插入标签进行拦截,所述第二目标待插入标签为待插入所述子页面的所述目标类型的标签。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现权利要求1-6中任意一项所述的动态脚本攻击拦截方法。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任意一项所述的动态脚本攻击拦截方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210673528.XA CN115065534B (zh) | 2022-06-14 | 2022-06-14 | 动态脚本攻击拦截方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210673528.XA CN115065534B (zh) | 2022-06-14 | 2022-06-14 | 动态脚本攻击拦截方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115065534A true CN115065534A (zh) | 2022-09-16 |
CN115065534B CN115065534B (zh) | 2023-11-28 |
Family
ID=83200783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210673528.XA Active CN115065534B (zh) | 2022-06-14 | 2022-06-14 | 动态脚本攻击拦截方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115065534B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093777A (zh) * | 2023-08-22 | 2023-11-21 | 北京领雁科技股份有限公司 | 一种浏览器页面的拦截方法、装置、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110225234A1 (en) * | 2010-03-10 | 2011-09-15 | International Business Machines Corporation | Preventing Cross-Site Request Forgery Attacks on a Server |
CN105592017A (zh) * | 2014-10-30 | 2016-05-18 | 阿里巴巴集团控股有限公司 | 跨站脚本攻击的防御方法及系统 |
KR101672791B1 (ko) * | 2015-10-26 | 2016-11-07 | 고려대학교 산학협력단 | 모바일 웹 애플리케이션 환경에서의 취약점 탐지 방법 및 시스템 |
WO2017056121A1 (en) * | 2015-09-28 | 2017-04-06 | Minded Security S.R.L. | Method for the identification and prevention of client-side web attacks |
CN109922052A (zh) * | 2019-02-22 | 2019-06-21 | 中南大学 | 一种结合多重特征的恶意url检测方法 |
US20200104488A1 (en) * | 2018-09-28 | 2020-04-02 | EMC IP Holding Company LLC | Detecting frame injection through web page analysis |
CN114006746A (zh) * | 2021-10-26 | 2022-02-01 | 深信服科技股份有限公司 | 一种攻击检测方法、装置、设备及存储介质 |
CN114116078A (zh) * | 2021-11-29 | 2022-03-01 | 深圳壹账通创配科技有限公司 | 基于微前端的应用数据处理方法、装置、设备及介质 |
CN114268475A (zh) * | 2021-12-13 | 2022-04-01 | 北京知道创宇信息技术股份有限公司 | 恶意脚本拦截方法、系统、服务器及计算机可读存储介质 |
-
2022
- 2022-06-14 CN CN202210673528.XA patent/CN115065534B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110225234A1 (en) * | 2010-03-10 | 2011-09-15 | International Business Machines Corporation | Preventing Cross-Site Request Forgery Attacks on a Server |
CN105592017A (zh) * | 2014-10-30 | 2016-05-18 | 阿里巴巴集团控股有限公司 | 跨站脚本攻击的防御方法及系统 |
WO2017056121A1 (en) * | 2015-09-28 | 2017-04-06 | Minded Security S.R.L. | Method for the identification and prevention of client-side web attacks |
KR101672791B1 (ko) * | 2015-10-26 | 2016-11-07 | 고려대학교 산학협력단 | 모바일 웹 애플리케이션 환경에서의 취약점 탐지 방법 및 시스템 |
US20200104488A1 (en) * | 2018-09-28 | 2020-04-02 | EMC IP Holding Company LLC | Detecting frame injection through web page analysis |
CN109922052A (zh) * | 2019-02-22 | 2019-06-21 | 中南大学 | 一种结合多重特征的恶意url检测方法 |
CN114006746A (zh) * | 2021-10-26 | 2022-02-01 | 深信服科技股份有限公司 | 一种攻击检测方法、装置、设备及存储介质 |
CN114116078A (zh) * | 2021-11-29 | 2022-03-01 | 深圳壹账通创配科技有限公司 | 基于微前端的应用数据处理方法、装置、设备及介质 |
CN114268475A (zh) * | 2021-12-13 | 2022-04-01 | 北京知道创宇信息技术股份有限公司 | 恶意脚本拦截方法、系统、服务器及计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093777A (zh) * | 2023-08-22 | 2023-11-21 | 北京领雁科技股份有限公司 | 一种浏览器页面的拦截方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115065534B (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10728274B2 (en) | Method and system for injecting javascript into a web page | |
US8353033B1 (en) | Collecting malware samples via unauthorized download protection | |
JP6624771B2 (ja) | クライアントベースローカルマルウェア検出方法 | |
Kirda et al. | Client-side cross-site scripting protection | |
US8959628B2 (en) | Method and apparatus for preventing unwanted code execution | |
US8230499B1 (en) | Detecting and blocking unauthorized downloads | |
JP2018502351A (ja) | スクリプト言語用のrasp | |
US20190303584A1 (en) | Method and apparatus to detect security vulnerabilities in a web application | |
Heiderich et al. | Dompurify: Client-side protection against xss and markup injection | |
US9009821B2 (en) | Injection attack mitigation using context sensitive encoding of injected input | |
CN112703496B (zh) | 关于恶意浏览器插件对应用用户的基于内容策略的通知 | |
EP3518135B1 (en) | Protection against third party javascript vulnerabilities | |
US10198575B2 (en) | Auto-sandboxing website or parts of website in browser to protect user privacy and security | |
CN105282096A (zh) | Xss 漏洞检测方法和装置 | |
Weissbacher et al. | {ZigZag}: Automatically Hardening Web Applications Against Client-side Validation Vulnerabilities | |
CN105049440A (zh) | 检测跨站脚本攻击注入的方法及系统 | |
US20170083486A1 (en) | Regulating undesirable webpage code | |
CN107103243B (zh) | 漏洞的检测方法及装置 | |
CN115065534B (zh) | 动态脚本攻击拦截方法、装置、电子设备及可读存储介质 | |
Satish et al. | Web browser security: different attacks detection and prevention techniques | |
US20140033308A1 (en) | Data driven system for responding to security vulnerability | |
CN113934507A (zh) | 基于污点标志跟踪检测jQuery库隐私泄露的方法和装置 | |
Barhoom et al. | A new server-side solution for detecting cross site scripting attack | |
CN112287349A (zh) | 安全漏洞检测方法及服务端 | |
CN114048483A (zh) | Xss漏洞的检测方法、装置、设备及介质 |
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 |