CN108881101B - 一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端 - Google Patents

一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端 Download PDF

Info

Publication number
CN108881101B
CN108881101B CN201710317081.1A CN201710317081A CN108881101B CN 108881101 B CN108881101 B CN 108881101B CN 201710317081 A CN201710317081 A CN 201710317081A CN 108881101 B CN108881101 B CN 108881101B
Authority
CN
China
Prior art keywords
object model
document object
dom
source address
external domain
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.)
Active
Application number
CN201710317081.1A
Other languages
English (en)
Other versions
CN108881101A (zh
Inventor
张强
杨勇
胡珀
郑兴
王放
郭晶
范宇河
唐文韬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710317081.1A priority Critical patent/CN108881101B/zh
Publication of CN108881101A publication Critical patent/CN108881101A/zh
Application granted granted Critical
Publication of CN108881101B publication Critical patent/CN108881101B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提供一种文档对象模型的跨站脚本漏洞防御方法、装置以及客户端,包括:解析当前页面文档对象模型树结构;在数据超级文本标记语言正文载入前,校验超文本传输协议中关于所述文档对象模型树的请求字段;如果校验到所述请求字段中包含有第一类字符串,对所述第一类字符串进行过滤或者转义。本发明在在数据超级文本标记语言正文载入前这一时机对超文本传输协议请求字段进行验证,能够全面、高效地实现对于统一资源定位符的验证,并对文档对象模型的跨站脚本漏洞进行修复,具有整站防御效果,有助于控制线上业务增量文档对象模型的跨站脚本漏洞并预防新文档对象模型的跨站脚本漏洞出现。

Description

一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及 客户端
技术领域
本发明属于网络安全防护技术领域,具体涉及一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端。
背景技术
跨站脚本漏洞(Cross Site Scripting,常简写作XSS)是Web应用程序未对用户输入的数据进行有效的过滤或转义,从而导致攻击者可以将构造的恶意数据显示在页面上的漏洞。其利用方式是恶意攻击者往Web页面里插入恶意JavaScript代码,当用户浏览该网页时,嵌入其中Web里面的JavaScript代码会被执行,从而达到恶意攻击正常用户的目的。根据不同场景下XSS漏洞触发,攻击者窃取Cookie信息、实施蠕虫传播和钓鱼攻击等会带给正常用户最显著的危害。
基于文档对象模型的跨站脚本漏洞(DOM-Based-XSS)是基于文档对象模型XSS漏洞中最常见的一种类型。目前业界已经有相当多的Web漏洞扫描器都能支持线上Web业务DOM-Based-XSS扫描发现,而一些优秀的Web应用防火墙也能针对DOM-Based-XSS漏洞进行有效的拦截和防御,但是仍然存在一些特殊场景会使主流扫描和防御方式发生失效,因此采用一种更轻量级、不影响正常业务的方式去防御DOM-Based-XSS漏洞,在黑客对发现的上述漏洞进行攻击利用时让业务方能实时感知,对于Web应用和业务安全的提升有很重要的意义。
发明内容
为了解决现有技术中存在的技术问题,本发明实施例提供了一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端,技术方案如下:
本发明的第一方面,提供一种文档对象模型的跨站脚本漏洞(DOM-Based-XSS)防御方法,包括如下步骤:解析当前页面文档对象模型(DOM)树结构;在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)中关于所述文档对象模型(DOM)树的请求字段;如果校验到所述请求字段中包含有第一类字符串,对所述第一类字符串进行过滤或者转义。
本发明的第二方面,提供一种文档对象模型的跨站脚本漏洞(DOM-Based-XSS)防御装置,所述装置包括如下模块:页面解析模块,用于解析当前页面文档对象模型(DOM)树结构;校验模块,用于在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)中关于所述文档对象模型(DOM)树的请求字段;漏洞处理模块,如果校验到所述超文本传输协议(HTTP)的请求字段中包含有第一类字符串,对所述字符串进行过滤或者转义。
本发明的第三方面,提供一种客户端,包含前述的装置。
本发明能够达到的有益效果:本发明在在数据超级文本标记语言(HTML)正文载入前这一时机对HTTP请求字段进行验证,能够全面、高效地实现对于URL的验证,并对Dom-Based-XSS进行修复,具有整站防御效果,有助于控制线上业务增量Dom-Based-XSS漏洞并预防新Dom-Based-XSS漏洞出现。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明;
图1是本发明实施例提供的文档对象模型的示意图;
图2是本发明实施例提供的恶意代码对网页的攻击模式示意图;
图3是本发明一个实施例提供的文档对象模型的跨站脚本漏洞防御方法流程图;
图4(a),4(b)是本发明一个实施例提供的文档对象模型的跨站脚本漏洞防御方法流程图;
图5是本发明一个实施例提供的文档对象模型的跨站脚本漏洞防御方法流程图;
图6是本发明实施例提供的恶意代码对网页的攻击模式示意图以及防御效果图;
图7是本发明实施例提供一种文档对象模型的跨站脚本漏洞防御装置结构框图;
图8是本发明实施例提供一种文档对象模型的跨站脚本漏洞防御装置结构框图;
图9是本发明实施例提供一种文档对象模型的跨站脚本漏洞防御装置结构框图;
图10是本发明实施例提供终端结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
如图1所示,文档对象模型(Dom,Document Object Model)是一个树状的模型,树状模型包括由根元素展开的多层元素结构,使用JavaScript代码根据文档对象模型一层一层的节点,去遍历/获取/修改对应的节点、对象、值。不失一般性地,Dom树结构不限于图1所示,还可以有其它形式的Dom树。
当出现基于DOM-Based-XSS的恶意代码注入时,会体现在文档对象模型的某个层级节点,DOM-Based-XSS会通过统一资源定位符(URL)传入参数去控制触发恶意代码的执行。基于文档对象模型的DOM-Based-XSS是基于文档对象模型漏洞中最常见的一种漏洞类型。
如图2所示,恶意代码对网页的攻击模式包括如下步骤:
S210,构造恶意代码的统一资源定位符(URL)。
S220,等待用户点击包含恶意代码的统一资源定位符(URL)。
S230,当包含恶意代码的统一资源定位符(URL)被用户点击时,浏览器会加载页面。
S240,恶意代码会在页面文档对象模型(DOM)中被执行。
针对图2所示的文档对象模型的跨站脚本漏洞(DOM-Based-XSS),在本发明的一个实施例中,通过部署传统网站应用级入侵防御系统(WAF)进行拦截,WAF的工作原理是对访问网站的请求流量进行清洗,使用正则匹配的方式对文档对象模型的DOM-Based-XSS攻击流量进行检测和拦截,如果黑客发起请求的超文本传输协议(HTTP)协议中被检测出带有明显的DOM-Based-XSS攻击利用行为(Exploit),则会阻断请求流量并且返回一个指定的错误页面给黑客,使得攻击手段失效,从而保证业务的安全性。WAF针对DOM-Based-XSS的拦截率和误报率依靠正则规则的数量级大小和拦截关键字的精确度。当正则规则的数量级过小或者拦截关键字的精确度不高时,这种拦截方式可能会失效。此外,该方式也较多地依靠流量监测和拦截,因此,还可以使用更加轻量级的拦截方式。
请参考图3,其示出了本发明一个实施例提供的文档对象模型的跨站脚本漏洞(DOM-Based-XSS)防御方法,方法包括如下步骤:
S310,解析当前页面文档对象模型(DOM)树结构。
针对当前页面文档对象模型(DOM)进行解析,通过解析可以获得一个树状的模型,树状模型反映JavaScript代码根据文档对象模型(DOM)建立的多层级节点,基于树状模型可以去遍历/获取/修改对应的节点、对象、值。例如,图1中的DOM树结构,包含根节点以及各个层级的文档节点,如果需要查找某个节点或者对DOM树进行遍历或者获得DOM树结构中某个节点的对象、值,则通过执行JavaScript代码可以对DOM树结构中的根节点、以及各个元素节点进行分层遍历。
S320,在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)的请求字段。
如图2所示的过程中,当包含恶意代码的统一资源定位符(URL)被用户点击时,浏览器会加载页面,此时恶意代码会在页面文档对象模型(DOM)中被执行。因此,需要在页面被浏览器加载前这一时机对恶意代码进行检测,此时URL已经被点击,超文本传输协议(HTTP)的请求已经被触发,并通过HTTP协议传输,但是恶意代码尚未在DOM中被触发执行,由于恶意代码引入的URL必须经过HTTP协议才能执行,对超文本传输协议(HTTP)的请求字段进行校验,可以避免对DOM中所有节点的校验,不仅能够提高校验准确性还能够提高校验的效率。可以理解为,在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)的请求字段是恶意URL由静态转为动态的瞬间。
S330,如果检测到所述超文本传输协议(HTTP)的请求字段中包含有第一类字符串,对所述第一类字符串进行过滤或者转义。
在对超文本传输协议(HTTP)的请求字段进行检测时,会对包括但不限于传递过来的统一资源定位符(URL)参数和请求中包含的危险JavaScript字符串进行校验。在此,我们将该类带有风险的统一资源定位符(URL)和包含危险JavaScript字符串统称为第一类字符串。当检测到该类字符串时,说明当前加载页面具有被恶意代码利用的漏洞,为了防止漏洞被执行,需要对字符串进行过滤或者转义。对字符串进行过滤是指直接清空该第一类字符串所包含的统一资源定位符(URL)参数和请求中包含的危险JavaScript字符串,使用一个空的字符串来代替该具有风险的第一类字符串,对URL中的字符只能是ASCII字符,但是ASCII字符比较少,而URL则常常包含ASCII字符集以外的字符,如非英语字符、汉字、特殊符号等等,所以要对URL进行转换。这个过程就叫做URL编码,或者叫URL转义,实质上就是将包含非ASCII字符的URL转换为有效的ASCII字符格式。在进行URL编码时,每一个非ASCII字符都被替换为“%hh”格式,其中hh为两位十六进制数,它对应于该字符在ISO-8859-1字符集里的编码值。比如“中国”这两个汉字出现在URL,就要将他们转为“%D6%D0%B9%FA”,由于一个汉字需要两个字节,所以“中国”被替换成了四个ASCII字符。
但是,对URL转码会有所不同的具体方法,包括对服务器端、客户端的参数的修改以及服务器端获取参数的方法。在一个具体的实施方式中,采用在客户端本身对参数进行修改,如此可以在客户端更加灵活、高效地配置,例如:
Figure BDA0001288780140000061
在一个示例中,恶意字符串包含但不限于各类型未转义的形式,例如'\"<>`script:daex/hml;bs64形式,在经过过滤和转义之后,可以向用户返回安全页面,也可以通过其他WEB应用的方式将安全页面返回给用户。
请参考图4(a),其示出了本发明一个实施例提供的文档对象模型的DOM-Based-XSS防御方法,方法包括如下步骤:
S410,解析当前页面文档对象模型(DOM)树结构。
解析是针对当前页面文档对象模型(DOM)进行的,通过解析可以获得一个树状的模型,模型反映JavaScript代码根据文档对象模型(DOM)一层一层的节点,去遍历/获取/修改对应的节点、对象、值。
S420,在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)的请求字段。
当包含恶意代码的统一资源定位符(URL)被用户点击时,浏览器会加载页面,此时恶意代码会在页面文档对象模型(DOM)中被执行。因此,需要在页面被浏览器加载前这一时机对恶意代码进行检测,此时URL已经被点击,但是恶意代码尚未在DOM中被完全触发执行。在一个实施例中,对校验超文本传输协议(HTTP)的请求字段进行校验。如此可以保证即将被加载的内容均被校验。
在一个实施例中,在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)的请求字段是通过配置网络服务器(webserver)配置项,以使得在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)的请求字段。
在一个实施例中,在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)的请求字段是通过,利用超级文本标记语言(HTML)标准文件来接入以使得在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)的请求字段。
S430,如果检测到所述超文本传输协议(HTTP)的请求字段中包含有第一类字符串,对所述字符串进行过滤或者转义。
在对超文本传输协议(HTTP)的请求字段进行检测时,会对包括但不限于传递过来的统一资源定位符(URL)参数和请求中包含的危险JavaScript字符串进行校验。在此,我们将该类带有风险的统一资源定位符(URL)和包含危险JavaScript字符串统称为第一类字符串。当检测到该类字符串时,说明当前加载页面具有被恶意代码利用的漏洞,为了防止漏洞被执行,需要对字符串进行过滤或者转义。对字符串进行过滤是指直接清空该第一类字符串所包含的统一资源定位符(URL)参数和请求中包含的危险JavaScript字符串,使用一个空的字符串来代替该具有风险的第一类字符串,对URL中的字符只能是ASCII字符,但是ASCII字符比较少,而URL则常常包含ASCII字符集以外的字符,如非英语字符、汉字、特殊符号等等,所以要对URL进行转换。这个过程就叫做URL编码,或者叫URL转义,实质上就是将包含非ASCII字符的URL转换为有效的ASCII字符格式。在进行URL编码时,每一个非ASCII字符都被替换为“%hh”格式,其中hh为两位十六进制数,它对应于该字符在ISO-8859-1字符集里的编码值。例如,“中国”这两个汉字出现在URL,就要将他们转为“%D6%D0%B9%FA”,由于一个汉字需要两个字节,所以“中国”被替换成了四个ASCII字符。
S440,返回过滤或者转义后的文档对象模型(DOM)树结构页面。
在本实施例中系统结构中,实现JavaScript防御的文件可以部署在公共的内容分发网络平台上的(Content Delivery Network),能够避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,内容传输的更快、更稳定,访问速度、稳定行和业务自己的资源文件一样,因此避免了在对抗DOMXSS漏洞时,对业务性能造成不良影响。
在一个实施例中,如图4(b)所示,步骤S410还包括如下子步骤:
S4101,提取所述页面中引入的外域JavaScript源地址。
一般WEB页面遭受蠕虫攻击主要是通过引入外部恶意代码,例如JavaScript代码、Jquery代码等。
在一个实施例中,通过DOM树检测逻辑,对页面中引入的外域代码源进行提取,JavaScript并且对提取的外域源地址进行数据存储、上报等操作。
S4102,分析所述外域JavaScript源地址是否属于安全可信任的主机地址。
分析所述外域JavaScript源地址是否属于安全可信任的主机地址是基于源地址与预设的白名单进行比较,白名单中预存储了认为安全可信任的主机域名。根据上一步收集的外域JavaScript源地址是否属于认为安全可信任的主机域名,判断当前JavaScript外域源地址的可信任程度。
在一个实施例中,外域源地址可以是例如JavaScript代码、Jquery代码等。
S4103,若所述JavaScript外域源地址属于安全可信任的主机地址,则过滤所述JavaScript外域源地址,并返回。
如果JavaScript外域源地址属于白名单中安全可信任的主机地址,则当前没有发现危险源地址,此时只需返回继续加载页面。
S4104,若所述JavaScript外域源地址不属于安全可信任的主机地址,则对所述地址进行的统一资源定位符(URL)进行分析。
若JavaScript外域源地址不属于白名单中的安全可信任的地址,那么需要对地址进行进一步的分析。分析可以采用多种方式,例如云分析、服务器验证等等。
以云分析为例,云端会收集以往出现过的黑名单统一资源定位符(URL)蠕虫地址,并通过分词、贝叶斯分类器、相似度、关键字检测模块等对JavaScript页面的内容进行扫描判别。如果命中了恶意地址或蠕虫检测规则,则确定该页面存在DOM-Based-XSS漏洞,同时也能实时发现业务页面正存在被蠕虫攻击的行为。
通过收集外域JavaScript源和进行URL属性信任度分析,可以非常灵活的扩展云端检测规则和识别算法,不断提高利用DOM-Based-XSS进行蠕虫攻击的发现率,能实时感知并且刻画业务的风险视图,及时止损。
综上所述,基于上述实施例通过引入单文件JavaScript防御Dom-Based-XSS修复方案,具有整站防御效果,有助于控制线上业务增量Dom-Based-XSS漏洞并预防新Dom-Based-XSS漏洞出现。区别于大型传统WAF部署流程的复杂、兼容性等问题,本发明所提供的防御方式接入更灵活简洁,无需任何开发成本,能取得比WAF更好的DOMXSS防御效果和用户体验。
如图5、图6所示,其示出了本发明一个实施例提供的文档对象模型的DOM-Based-XSS防御方法。
Dom-Based-XSS也称为第三种类型的XSS或者类型0(type-0XSS),目前,DOM型的XSS也逐渐增多,除了因为各种JavaScript库比如YUI,Jquery,Jquerymobile等的使用,还有很多编程语言,比如php更多的支持了HTML5的特性。下面,示例性地列举出文档对象模型的DOM-Based-XSS:
Figure BDA0001288780140000101
上述代码以html()方法输出html,但是html()并不是一个安全的输出html的方式。如果用户可控的输入经过html()输出之前没有合适的过滤,就会导致DOM-Based-XSS。Jquery的html()相当于JavaScript的innerHTML。
如图5所示,当网页等WEB服务或应用的漏洞被发现之后,利用文档对象模型的DOM-Based-XSS诸如的恶意URL代码会被注入到该WEB服务或者应用,如果用户使用该WEB服务时,恶意URL会被触发。因此使WEB应用接入核心JavaScript防御库,如果检测到超文本传输协议(HTTP)的请求字段中包含有第一类字符串,对所述字符串进行过滤或者转义。同时,基于对DOM树的解析,会收集引入的非本域的JavaScriptURL,并在白名单过滤之后,对疑似含有蠕虫的URL进行云分析和判定。
与图2对应地,图6示出了使用本实施例提供的方法之后对JavaScript恶意代码进行过滤或转义,并刷新页面,浏览器加载过滤之后的URL,由此,用户可以安全访问页面。该方法能够极大提升了线上业务存在的Dom-Based-XSS漏洞被恶意利用的有效保护率,应用前后Dom-Based-XSS被蠕虫利用的防护监控率达到99.9%,同时也极大的极高了线上业务DOM-XSS增量漏洞的发现率。
如图7所示,本实施例提供一种文档对象模型的DOM-Based-XSS防御装置,装置包括如下模块:
页面解析模块,用于解析当前页面文档对象模型(DOM)树结构。
校验模块,用于在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)中关于所述文档对象模型(DOM)树的请求字段。
漏洞处理模块,如果校验到所述超文本传输协议(HTTP)的请求字段中包含有第一类字符串,对所述字符串进行过滤或者转义。
装置的具体功能可参见步骤S310-S330所对应的实施例。
如图8所示,本实施例提供一种文档对象模型的跨站脚本漏洞(DOM-Based-XSS)防御装置,装置包括如下模块:
页面解析模块,用于解析当前页面文档对象模型(DOM)树结构。
校验模块,用于在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)中关于所述文档对象模型(DOM)树的请求字段。
漏洞处理模块,如果校验到所述超文本传输协议(HTTP)的请求字段中包含有第一类字符串,对所述字符串进行过滤或者转义。
页面生成模块,用于生成过滤或者转义后的文档对象模型(DOM)树结构页面。
在一个实施例中,所述页面解析模块还包括:
外域源提取子模块,用于提取所述页面中引入的外域源地址;
可信任名单过滤模块,分析所述外域源地址是否属于安全可信任的主机地址;
第一执行子模块,用于在所述源地址属于安全可信任的主机地址时,过滤所述外域源地址,并返回;
第二执行子模块,用于在所述外域源地址不属于安全可信任的主机地址时,对所述地址进行的统一资源定位符(URL)进行分析。
在一个实施例中,可信任名单过滤模块还包括白名单子模块,用于存储预设的白名单。
在一个实施例中,如图9所示,所述第二执行子模块包括:分词检测子模块、贝叶斯分类器检测子模块、相似度检测子模块、关键字检测子模块。
在一个实施例中,关键字检测模块是通过监测URL所包含的字符串中是否包含有特定的关键词或者字符串,如果包含有,则判定该URL大概率属于恶意URL。
在一个实施例中,贝叶斯分类器检测子模块包含如下实施步骤:
S1,收集大量的恶意URL和正常URL,建立恶意URL集合和正常URL集合。
S2,提取URL中的独立字符串,例如ABC32,¥234等作为TOKEN串并统计提取出的TOKEN串出现的次数即字频。按照上述的方法分别处理恶意URL集合和正常URL集合中的URL。
S3,每一个URL对应一个哈希表,hashtable_good对应正常URL集合而hashtable_bad对应恶意URL集合。表中存储TOKEN串到字频的映射关系。
S4,计算每个哈希表中TOKEN串出现的概率P=(某TOKEN串的字频)/(对应哈希表的长度)。
S5,综合考虑hashtable_good和hashtable_bad,推断出当URL中出现某个TOKEN串时,该URL为恶意URL的概率。数学表达式为:
A事件----恶意URL;
t1,t2……tn代表TOKEN串
则P(A|ti)表示在URL中出现TOKEN串ti时,该URL为恶意URL的概率。设:
P1(ti)=(ti在hashtable_good中的值)
P2(ti)=(ti在hashtable_bad中的值)
则P(A|ti)=P2(ti)/[(P1(ti)+P2(ti)];
S6,建立新的哈希表hashtable_probability存储TOKEN串ti到P(A|ti)的映射
S7,至此,恶意URL集合和正常ULR集合的学习过程结束。根据建立的哈希表hashtable_probability可以估计新到URL为恶意URL的可能性。
对于每一个待验证的URL,按照步骤2,生成TOKEN串。查询hashtable_probability得到该TOKEN串的键值。
假设由该URL共得到N个TOKEN串,t1,t2……tn,hashtable_probability中对应的值为P1,P2,……PN,P(A|t1,t2,t3……tn)表示在URL中同时出现多个TOKEN串t1,t2……tn时,该邮件为恶意URL的概率。
由复合概率公式可得:
P(A|t1,t2,t3……tn)=(P1*P2*……PN)/[P1*P2*……PN+(1-P1)*(1-P2)*……(1-PN)]
当P(A|t1,t2,t3……tn)超过预定阈值时,就可以判断URL为恶意URL。
在一个实施例中,校验模块包括:
网络服务器配置子模块,用于配置网络服务器(webserver)配置项,以使得在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)的请求字段;
和/或,超级文本标记语言(HTML)标准文件接入子模块,用于利用超级文本标记语言(HTML)标准文件来接入以使得在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)的请求字段。
请参考图10,其示出了本发明一个实施例提供的终端的结构示意图。该终端用于实施上述实施例中提供的软件产品的合法性验证方法。具体来讲:
终端1000可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、视频传感器150、音频电路160、WiFi(wireless fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图10中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1000的使用所创建的数据(比如视频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括图像输入设备131以及其他输入设备132。图像输入设备131可以是摄像头,也可以是光电扫描设备。除了图像输入设备131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端1000的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,15有机发光二极管)等形式来配置显示面板141。
终端1000可包括至少一种视频传感器150,视频传感器用于获取用户的视频信息。终端1000还可以包括其它传感器(未示出),比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端1000移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端1000还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
视频电路160、扬声器161,传声器162可提供用户与终端1000之间的视频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路11以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端1000的通信。
WiFi属于短距离无线传输技术,终端1000通过WiFi模块70可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块170,但是可以理解的是,其并不属于终端1000的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端1000的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端1000的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。
可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端1000还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端1000还可以包括蓝牙模块等,在此不再赘述。
具体在本实施例中,终端1000还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述发送方客户端侧或者接收方客户端侧的方法的指令。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述后台服务器侧的方法的指令。所述程序包含:解析当前页面文档对象模型(DOM)树结构;在数据超级文本标记语言(HTML)正文载入前,校验超文本传输协议(HTTP)中关于所述文档对象模型(DOM)树的请求字段;如果校验到所述请求字段中包含有第一类字符串,对所述第一类字符串进行过滤或者转义。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种文档对象模型的跨站脚本漏洞DOM-Based-XSS防御方法,其特征在于,应用所述方法的文件部署在公共的内容分发网络平台上;
所述方法包括如下步骤:
解析当前页面文档对象模型DOM树结构;
在数据超级文本标记语言HTML正文载入前,校验超文本传输协议HTTP中关于所述文档对象模型DOM树的请求字段,以避免对所述文档对象模型DOM中所有节点的校验;
如果校验到所述请求字段中包含有第一类字符串,对所述第一类字符串进行过滤或者转义;
返回过滤或者转义后的文档对象模型DOM树结构页面。
2.根据权利要求1所述的方法,其特征在于,所述解析当前页面文档对象模型DOM树结构步骤还包括:
提取所述页面中引入的外域源地址;
分析所述外域源地址是否属于安全可信任的主机地址;
若所述外域源地址属于安全可信任的主机地址,则过滤所述外域源地址,并返回;
若所述外域源地址不属于安全可信任的主机地址,则对所述外域源地址进行的统一资源定位符URL进行分析。
3.根据权利要求2所述的方法,其特征在于,分析所述外域源地址是否属于安全可信任的主机地址是基于所述外域源地址与预设的白名单进行比较。
4.根据权利要求2所述的方法,其特征在于,对所述外域源地址进行的统一资源定位符URL进行分析包括:分词检测、贝叶斯分类器检测、相似度检测、关键字检测。
5.根据权利要求1所述的方法,其特征在于,所述在数据超级文本标记语言HTML正文载入前,校验超文本传输协议HTTP的请求字段步骤包括:
配置网络服务器webserver的配置项,以使得在数据超级文本标记语言HTML正文载入前,校验超文本传输协议HTTP的请求字段;
或者,
利用超级文本标记语言HTML标准文件来接入以使得在数据超级文本标记语言HTML正文载入前,校验超文本传输协议HTTP的请求字段。
6.根据权利要求1所述的方法,其特征在于,所述对所述第一类字符串进行过滤或者转义包括:
清空所述第一类字符串所包含的统一资源定位符URL参数和请求中包含的危险字符串,使用一个空的字符串来代替该具有风险的第一类字符串;
或者,将包含非ASCII字符的URL转换为有效的ASCII字符格式。
7.一种文档对象模型的跨站脚本漏洞DOM-Based-XSS防御装置,其特征在于,所述装置部署在公共的内容分发网络平台上;
所述装置包括如下模块:
页面解析模块,用于解析当前页面文档对象模型DOM树结构;
校验模块,用于在数据超级文本标记语言HTML正文载入前,校验超文本传输协议HTTP中关于所述文档对象模型DOM树的请求字段,以避免对所述文档对象模型DOM中所有节点的校验;
漏洞处理模块,如果校验到所述超文本传输协议HTTP的请求字段中包含有第一类字符串,对所述字符串进行过滤或者转义;
页面生成模块,用于生成过滤或者转义后的文档对象模型DOM树结构页面。
8.根据权利要求7所述的装置,其特征在于,所述页面解析模块还包括:
外域源提取子模块,用于提取所述页面中引入的外域源地址;
可信任名单过滤模块,分析所述外域源地址是否属于安全可信任的主机地址;
第一执行子模块,用于在所述外域源地址属于安全可信任的主机地址时,过滤所述外域源地址,并返回;
第二执行子模块,用于在所述外域源地址不属于安全可信任的主机地址时,对所述外域源地址进行的统一资源定位符URL进行分析。
9.根据权利要求8所述的装置,其特征在于,可信任名单过滤模块还包括白名单子模块,用于存储预设的白名单。
10.根据权利要求8所述的装置,其特征在于,所述第二执行子模块包括:分词检测子模块、贝叶斯分类器检测子模块、相似度检测子模块、关键字检测子模块。
11.根据权利要求7所述的装置,其特征在于,所述校验模块包括:
网络服务器配置子模块,用于配置网络服务器webserver配置项,以使得在数据超级文本标记语言HTML正文载入前,校验超文本传输协议HTTP的请求字段;
和/或,超级文本标记语言HTML标准文件接入子模块,用于利用超级文本标记语言HTML标准文件来接入以使得在数据超级文本标记语言HTML正文载入前,校验超文本传输协议HTTP的请求字段。
12.根据权利要求7所述的装置,其特征在于,所述漏洞处理模块包含如下子模块:
过滤子模块,用于清空所述第一类字符串所包含的统一资源定位符URL参数和请求中包含的危险字符串,使用一个空的字符串来代替该具有风险的第一类字符串;
转义子模块,用于将包含非ASCII字符的URL转换为有效的ASCII字符格式。
13.一种客户端,包含权利要求7-12之一所述的装置。
CN201710317081.1A 2017-05-08 2017-05-08 一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端 Active CN108881101B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710317081.1A CN108881101B (zh) 2017-05-08 2017-05-08 一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710317081.1A CN108881101B (zh) 2017-05-08 2017-05-08 一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端

Publications (2)

Publication Number Publication Date
CN108881101A CN108881101A (zh) 2018-11-23
CN108881101B true CN108881101B (zh) 2021-06-15

Family

ID=64287747

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710317081.1A Active CN108881101B (zh) 2017-05-08 2017-05-08 一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端

Country Status (1)

Country Link
CN (1) CN108881101B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109889478A (zh) * 2018-12-21 2019-06-14 航天信息股份有限公司 一种用于防范React前端框架的跨站脚本攻击XSS的方法及系统
CN110188038B (zh) * 2019-05-13 2023-07-21 青岛海尔科技有限公司 一种参数校验方法及装置、校验架构
CN110417746A (zh) * 2019-07-05 2019-11-05 平安国际智慧城市科技股份有限公司 跨站脚本攻击防御方法、装置、设备及存储介质
CN112241530B (zh) * 2019-07-19 2023-05-30 中国人民解放军战略支援部队信息工程大学 恶意pdf文档的检测方法及电子设备
CN110532173A (zh) * 2019-07-22 2019-12-03 深圳壹账通智能科技有限公司 一种测试预处理方法、装置、计算机系统及可读存储介质
CN110933062A (zh) * 2019-11-25 2020-03-27 杭州安恒信息技术股份有限公司 El表达式注入漏洞的防御方法
CN111274760B (zh) * 2020-01-09 2023-07-18 抖音视界有限公司 富文本数据处理方法、装置、电子设备及计算机存储介质
WO2021212739A1 (zh) * 2020-04-22 2021-10-28 百度在线网络技术(北京)有限公司 网络攻击的防御方法、装置、设备、系统和存储介质
CN111949990B (zh) * 2020-08-10 2023-01-20 曙光信息产业(北京)有限公司 跨站脚本风险检测方法、装置、计算机设备和存储介质
CN112532614A (zh) * 2020-11-25 2021-03-19 国网辽宁省电力有限公司信息通信分公司 一种用于电网终端的安全监测方法和系统
CN113792026B (zh) * 2021-08-11 2023-08-11 深圳力维智联技术有限公司 数据库脚本的部署方法、装置及计算机可读存储介质
CN114398578A (zh) * 2021-12-23 2022-04-26 网易有道信息技术(北京)有限公司 用于对html字符串进行预处理的方法及其相关产品
CN114168950B (zh) * 2022-02-11 2022-06-10 北京仁科互动网络技术有限公司 一种跨站脚本攻击漏洞的修复方法、装置、设备及产品

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459548B (zh) * 2007-12-14 2011-10-12 北京启明星辰信息技术股份有限公司 一种脚本注入攻击检测方法和系统
CN101895516B (zh) * 2009-05-19 2014-08-06 北京启明星辰信息技术股份有限公司 一种跨站脚本攻击源的定位方法及装置
CN103577755A (zh) * 2013-11-01 2014-02-12 浙江工业大学 一种基于支持向量机的恶意脚本静态检测方法
CN104636664B (zh) * 2013-11-08 2018-04-27 腾讯科技(深圳)有限公司 基于文档对象模型的跨站脚本攻击漏洞检测方法及装置
CN104794396B (zh) * 2014-01-16 2018-06-19 腾讯科技(深圳)有限公司 跨站式脚本漏洞检测方法及装置
CN105592017B (zh) * 2014-10-30 2019-03-29 阿里巴巴集团控股有限公司 跨站脚本攻击的防御方法及系统
CN104601540B (zh) * 2014-12-05 2018-11-16 华为技术有限公司 一种跨站脚本XSS攻击防御方法及Web服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DOM型XSS攻击防范模型研究;黄文锋;《中国优秀硕士学位论文全文数据库信息科技集》;20110515;全文 *

Also Published As

Publication number Publication date
CN108881101A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN108881101B (zh) 一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端
US11503044B2 (en) Method computing device for detecting malicious domain names in network traffic
EP3506141B1 (en) System for query injection detection using abstract syntax trees
US20230092522A1 (en) Data packet processing method, apparatus, and electronic device, computer-readable storage medium, and computer program product
CN103607385B (zh) 基于浏览器进行安全检测的方法和装置
KR101574652B1 (ko) 모바일 침해사고 분석시스템 및 방법
US8893278B1 (en) Detecting malware communication on an infected computing device
US9413776B2 (en) System for finding code in a data flow
EP2408166B1 (en) Filtering method, system and network device therefor
US10430586B1 (en) Methods of identifying heap spray attacks using memory anomaly detection
US9379896B1 (en) Compromised password mitigation
US20120222117A1 (en) Method and system for preventing transmission of malicious contents
US9027128B1 (en) Automatic identification of malicious budget codes and compromised websites that are employed in phishing attacks
US9754113B2 (en) Method, apparatus, terminal and media for detecting document object model-based cross-site scripting attack vulnerability
US20170353434A1 (en) Methods for detection of reflected cross site scripting attacks
US10972507B2 (en) Content policy based notification of application users about malicious browser plugins
JP2018518127A (ja) インライン・アクティブ・セキュリティ・デバイスによるパッシブセキュリティ分析
US10044754B2 (en) Polluting results of vulnerability scans
US9787711B2 (en) Enabling custom countermeasures from a security device
US11128639B2 (en) Dynamic injection or modification of headers to provide intelligence
US11368430B2 (en) Domain name server based validation of network connections
CN104796386B (zh) 一种僵尸网络的检测方法、装置和系统
KR101494329B1 (ko) 악성 프로세스 검출을 위한 시스템 및 방법
CN110177096B (zh) 客户端认证方法、装置、介质和计算设备
CN105072109B (zh) 防止跨站脚本攻击的方法及系统

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