一种实时检测网页跨域请求的方法和装置的制作方法

文档序号:7912200阅读:158来源:国知局
专利名称:一种实时检测网页跨域请求的方法和装置的制作方法
技术领域
本发明涉及一种互联网安全检测方法,一种实时检测网页跨域请求的方法和装置。
背景技术
随着互联网技术的发展,现在的网站包含大量的动态内容以提高用户体验,比过去要复杂得多。所谓动态内容,就是根据用户输入,WEB应用程序能够输出相应的内容。这种动态站点会受到一种名为“跨站脚本攻击”(Cross Site Scripting,通常将其所写成XSS) 的威胁。跨站脚本攻击一旦成功,能够从网站用户那里恶意盗取信息,特别是存储型跨站脚本危害更大。在网站动态内容日益复杂化的今天,跨站脚本攻击方式也越来越多样。越来 越多的攻击针对WEB应用程序的漏洞、浏览器漏洞、浏览器漏洞结合WEB应用程序的漏洞。由于WEB应用程序和浏览器的多样性,这使得传统的防护和检测方法有一定的局限性,这也成为了计算机网络安全日益严峻的问题。

发明内容
本发明提供了一种实时检测网页跨域请求的方法,包括对网页中标示网页页面资源的页面元素及其行为进行监测,捕获页面资源地址域名,和/或捕获页面元素行为产生的新域名;根据提取的域名进行异常域名鉴别;如果域名为异常域名,获取异常域名页面信息,阻止应用程序访问该域名。优选地,所述对网页中标示网页页面资源的页面元素及其行为进行监测,捕获页面资源地址域名,进一步为对网页中标示网页页面资源的页面元素及其行为进行监测,捕获当前页面引用的外部资源地址域名。优选地,所述对网页中标示网页页面资源的页面元素及其行为进行监测,捕获页面资源地址域名,和/或捕获页面元素行为产生的新域名中,进一步为监测当前页面是否发生跳转,在当前页面发生跳转时,捕获跳转后的新域名;或监测当前页面中动态生成页面元素的脚本行为,判断动态生成页面元素是否加载外部资源,并在加载外部资源时捕获外部资源地址域名。优选地,所述根据提取的域名进行异常域名鉴别具体为根据捕获到的域名,匹配白名单里的合法域名,如未能匹配到,则判断该域名为异常域名。 优选地,所述如果域名为异常域名,获取异常域名页面信息,阻止应用程序访问该域名包括阻止浏览器访问异常域名。本发明还公开了一种实时检测网页跨域请求的装置,包括监测模块、鉴别模块、阻止模块;所述监测模块,与鉴别模块和阻止模块相连,用于实现对网页中标示网页页面资源的页面元素及其行为进行监测,并提取页面资源地址域名,和/或页面元素行为产生的新域名;所述鉴别模块,与所述监测模块和所述阻止模块相连,用于根据监测模块所提取的域名进行鉴别,如果域名为异常域名,则获取异常域名页面信息,发送给阻止模块;所述阻止模块,与所述鉴别模块相连,用于根据鉴别模块提供的异常域名信息,阻止应用程序访问异常域名。优选地,所述监测模块包括资源域名获取单元、存储单元、跳转监测单元、动态页面监测单元;其中·
所述资源域名获取单元,与跳转监测单元、动态页面监测单元分别相连,用于捕获当前页面引用的外部资源地址,和/或所述获取跳转监测单元监测到的当前页面跳转到的新域名,和/或所述动态页面监测单元监测到的当前页面中动态生成页面元素所加载的外部资源地址域名;所述存储单元,与资源域名获取单元相连,用于存储资源域名获取单元获取到的域名;跳转监测单元,与所述资源域名获取单元相连,用于监测当前页面的域名是否发生跳转,并在发生跳转时通知资源域名获取单元获取跳转后的地址域名;动态页面监测单元,与资源域名获取单元相连,用于监测当前页面中动态生成页面元素的脚本行为,判断动态生成页面元素是否加载外部资源,并在动态生成页面元素有加载外部资源时通知资源域名获取单元获取外部资源地址域名。优选地,所述鉴别模块具体包括白名单单元和匹配单元,其中所述白名单单元,用于存储合法的域名;所述匹配单元,与白名单单元相连,根据所述监测模块所提取的资源地址域名,匹配白名单单元中的合法域名,在未能匹配到时获取该域名页面信息,发送给所述阻止模块。优选地,所述阻止单元包括域名访问阻止单元和信息发送单元,其中所述域名访问阻止单元,用于根据所述鉴别模块提供的异常域名信息,阻止应用程序访问该异常域名;所述信息发送单元,与所示域名访问阻止单元相连,用于把域名访问阻止单元阻止域名访问的情况通知应用层。本发明基于检测客户端浏览器是否存在跨域引用未知资源的行为来判断恶意代码是否存在,而不是由服务端检测注入代码本身,因此无需漏洞检测库与关键字过滤,实时性高,代价小,不易察觉与绕过,能够及时获取、预防与分析。


图1是本发明一种实时检测网页跨域请求的方法的流程图;图2是本发明捕获当前页面引用的外部资源地址的流程图;图3是本发明捕获跳转后的新域名的流程图;图4是本发明监测当前页面中动态生成页面元素的脚本行为的流程图;图5是本发明一种实时检测网页跨域请求的装置结构图。
具体实施例方式本发明的第一个实施例公开了一种实时检测网页跨域请求的方法。如图1所示,包括步骤1,对网页中标示网页页面资源的页面元素及其行为进行监测,捕获页面资源地址域名,和/或页面元素行为产生的新域名。本步骤可利用客户端浏览器JAVASCRIPT脚本实现对页面元素以及行为的监测。页面元素即HTML页面中的DOM节点。HTML以闭合标签表示节点元素类型(如〈scriptsrc = Tittp://localhost/a. js^X/script),即称作该标签 src 弓丨用了外部资源。如〈imgsrc =,,,f onerror =”alert(l),,>,即称作该标签的 onerror 触发了 js 行为)。具体包括I)捕获当前页面引用的外部资源地址(这里的地址以域名的形式表示)。
这里,可利用浏览器JAVASCRIPT脚本捕获页面加载的〈iframe〉、〈script〉、〈style〉等元素,获取其资源地址的域名。具体流程如图2所示2)监测当前页面是否发生跳转,在当前页面发生跳转时,捕获跳转后的新域名;这里,可利用JAVASCRIPT脚本监测浏览器地址是否被恶意跳转。首先获取对象top.1oaction的值,监测该对象的值是否变化。一旦该对象的值被javascript脚本修改,保存原有的值,并获取新值域名。具体流程如图3所示3)监测当前页面中动态生成页面元素的脚本行为,判断动态生成页面元素是否加载外部资源,并在加载外部资源时捕获外部资源地址域名。这里,可用JAVASCRIPT脚本监测动态生成页面元素的脚本行为(如createElement、document, write、appendChild 等);利用 javascript 的 Hook 技术,重载这类函数。新函数在执行原函数功能之前判断该元素是否加载外部资源,如果是,获取该元素的资源地址域名。具体流程如图4所示4)存储所捕获到的域名。步骤2,根据提取的域名进行异常域名鉴别。本步骤中,根据捕获到的域名,匹配白名单里的合法域名,如未能匹配到,则判断该域名为异常域名。主要包括建立白名单定义一个数组存储信任域名的正则匹配表达式。Var white_list =[“*· domain, com”, ” *· white, cn” ]。或者对白名单兀素进行加密保护。Var white_list=[“,,]。监测该数组是否被恶意改动
window, watch ("white.1 is t", function (id, oldval, newval) {
//被篡改,处理代码 alert (newval);
return ;
});
3)对步骤I中的输出域名进行加密(MD5或者其他)。与白名单中的加密字符窜逐一对比。相同则为合法域名,不同则判断为异常域名。步骤3,如果域名为异常域名,获取异常域名页面信息,阻止应用程序访问该域名。如,浏览器访问异常域名。本方法通过监测外部资源引用异常、地址跳转异常、动态页面脚本行为异常等,有效监测恶意跨域行为。本发明第二个实施例公开了一种实时检测网页跨域请求的装置。如图5所示,包括监测模块1、鉴别模块2、阻止模块3。监测模块1,与鉴别模块2和阻止模块3相连。用于实现对网页中标示网页页面资源的页面元素及其行为进行监测,并提取页面资源地址域名和页面元素行为产生的新域 名。具体包括资源域名获取单元101、存储单元102、跳转监测单元103、动态页面监测单元104。其中资源域名获取单元101,与跳转监测单元103、动态页面监测单元104分别相连,用于捕获当前页面引用的外部资源地址(这里的地址以域名的形式表示),以及获取跳转监测单元103监测到的当前页面跳转到的新域名和动态页面监测单元104监测到的当前页面中动态生成页面元素所加载的外部资源地址域名。存储单元102,与资源域名获取单元101相连,用于存储资源域名获取单元101获取到的域名。跳转监测单元103,与资源域名获取单元101相连,用于监测当前页面的域名是否发生跳转,并在发生跳转时通知资源域名获取单元101获取跳转后的地址域名。动态页面监测单元104,与资源域名获取单元101相连,用于监测当前页面中动态生成页面元素的脚本行为,判断动态生成页面元素是否加载外部资源,并在动态生成页面元素有加载外部资源时通知资源域名获取单元101获取外部资源地址域名。鉴别模块2,与阻止模块3相连,用于根据监测模块I所提取的域名进行鉴别,如果域名为异常域名,则获取异常域名页面信息,发送给阻止模块3。鉴别模块2具体包括白名单单元201和匹配单元202。其中白名单单元201,用于存储合法的域名。匹配单元202,与白名单单元201相连,根据监测模块I所提取的资源地址域名,匹配白名单单元201中的合法域名,在未能匹配到时获取该域名页面信息,发送给阻止模块3。阻止模块3,与鉴别模块2相连,用于根据鉴别模块2提供的异常域名信息,阻止应用程序(比如浏览器)访问异常域名。具体包括域名访问阻止单元301、信息发送单元302。其中域名访问阻止单元301,用于根据鉴别模块2提供的异常域名信息,阻止应用程序(比如浏览器)访问该异常域名。信息发送单元302,与所示域名访问阻止单元301相连,用于把域名访问阻止单元301阻止域名访问的情况通知应用层。综上所述,本发明基于检测客户端浏览器是否存在跨域引用未知资源的行为来判断恶意代码是否存在,而不是由服务端检测注入代码本身,因此无需漏洞检测库与关键字过滤,实时性高,代价小,不易察觉与绕过,能够及时获取、预防与分析。以上对本发明所提供的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及 其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种实时检测网页跨域请求的方法,其特征在于,包括 对网页中标示网页页面资源的页面元素及其行为进行监测,捕获页面资源地址域名,和/或捕获页面元素行为产生的新域名; 根据提取的域名进行异常域名鉴别; 如果域名为异常域名,获取异常域名页面信息,阻止应用程序访问该域名。
2.根据权利要求1所述的方法,其特征在于 所述对网页中标示网页页面资源的页面元素及其行为进行监测,捕获页面资源地址域名,进一步为 对网页中标示网页页面资源的页面元素及其行为进行监测,捕获当前页面引用的外部资源地址域名。
3.根据权利要求1所述的方法,其特征在于 所述对网页中标示网页页面资源的页面元素及其行为进行监测,捕获页面资源地址域名,和/或捕获页面元素行为产生的新域名中,进一步为 监测当前页面是否发生跳转,在当前页面发生跳转时,捕获跳转后的新域名;或监测当前页面中动态生成页面元素的脚本行为,判断动态生成页面元素是否加载外部资源,并在加载外部资源时捕获外部资源地址域名。
4.根据权利要求1-3中任一权利要求所述的方法,还包括存储所捕获到的域名。
5.根据权利要求1所述的方法,其特征在于,所述根据提取的域名进行异常域名鉴别具体为根据捕获到的域名,匹配白名单里的合法域名,如未能匹配到,则判断该域名为异常域名。
6.根据权利要求1所述的方法,其特征在于,所述如果域名为异常域名,获取异常域名页面信息,阻止应用程序访问该域名包括阻止浏览器访问异常域名。
7.一种实时检测网页跨域请求的装置,其特征在于,包括监测模块、鉴别模块、阻止模块; 所述监测模块,与鉴别模块和阻止模块相连,用于实现对网页中标示网页页面资源的页面元素及其行为进行监测,并提取页面资源地址域名,和/或页面元素行为产生的新域名; 所述鉴别模块,与所述监测模块和所述阻止模块相连,用于根据监测模块所提取的域名进行鉴别,如果域名为异常域名,则获取异常域名页面信息,发送给阻止模块; 所述阻止模块,与所述鉴别模块相连,用于根据鉴别模块提供的异常域名信息,阻止应用程序访问异常域名。
8.根据权利要求7所述的一种实时检测网页跨域请求的装置,其特征在于,所述监测模块包括资源域名获取单元、存储单元、跳转监测单元、动态页面监测单元;其中 所述资源域名获取单元,与跳转监测单元、动态页面监测单元分别相连,用于捕获当前页面引用的外部资源地址,和/或所述获取跳转监测单元监测到的当前页面跳转到的新域名,和/或所述动态页面监测单元监测到的当前页面中动态生成页面元素所加载的外部资源地址域名; 所述存储单元,与资源域名获取单元相连,用于存储资源域名获取单元获取到的域名;跳转监测单元,与所述资源域名获取单元相连,用于监测当前页面的域名是否发生跳转,并在发生跳转时通知资源域名获取单元获取跳转后的地址域名; 动态页面监测单元,与资源域名获取单元相连,用于监测当前页面中动态生成页面元素的脚本行为,判断动态生成页面元素是否加载外部资源,并在动态生成页面元素有加载外部资源时通知资源域名获取单元获取外部资源地址域名。
9.根据权利要求7所述的一种实时检测网页跨域请求的装置,其特征在于,所述鉴别模块具体包括白名单单元和匹配单元,其中 所述白名单单元,用于存储合法的域名; 所述匹配单元,与白名单单元相连,根据所述监测模块所提取的资源地址域名,匹配白名单单元中的合法域名,在未能匹配到时获取该域名页面信息,发送给所述阻止模块。
10.根据权利要求7所述的一种实时检测网页跨域请求的装置,其特征在于,所述阻止单元包括域名访问阻止单元和信息发送单元,其中 所述域名访问阻止单元,用于根据所述鉴别模块提供的异常域名信息,阻止应用程序访问该异常域名; 所述信息发送单元,与所示域名访问阻止单元相连,用于把域名访问阻止单元阻止域名访问的情况通知应用层。
全文摘要
本发明公开了一种实时检测网页跨域请求的方法,包括对网页中标示网页页面资源的页面元素及其行为进行监测,捕获页面资源地址域名,和/或捕获页面元素行为产生的新域名;根据提取的域名进行异常域名鉴别;如果域名为异常域名,获取异常域名页面信息,阻止应用程序访问该域名。本发明基于检测客户端浏览器是否存在跨域引用未知资源的行为来判断恶意代码是否存在,而不是由服务端检测注入代码本身,因此无需漏洞检测库与关键字过滤,实时性高,代价小,不易察觉与绕过,能够及时获取、预防与分析。
文档编号H04L29/06GK103001817SQ201110275500
公开日2013年3月27日 申请日期2011年9月16日 优先权日2011年9月16日
发明者卢文浩, 罗佳 申请人:厦门市美亚柏科信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1