一种防御跨站脚本攻击的方法及系统与流程

文档序号:14022830阅读:821来源:国知局
一种防御跨站脚本攻击的方法及系统与流程

本发明公开一种防御攻击的方法及系统,涉及网站安全领域,具体地说是一种防御跨站脚本攻击的方法系统。



背景技术:

各种网站安全漏洞中,跨站脚本攻击(crosssitescript,即css攻击)是一种常见的网络安全问题。具体来讲,跨站脚本攻击是指攻击者通过在web页面中嵌入恶意的可执行脚本或者html代码,当用户访问该页面时,镶嵌的恶意脚本或代码就会执行。攻击者可以通过多种方式危害用户,包括通过获取用户的session信息从而伪装成用户访问授权网站,盗取用户信息和账号,读取、篡改、添加、删除企业,盗窃企业重要的、具有商业价值的资料,造成重大的损失。

现有的跨站脚本攻击的防御手段通过过滤提交到数据库中的sql语句,发现修改数据库等敏感行为,判定有跨站脚本攻击的行为或者基于字符编码、安全库对web应用进行扫描,检测是否有敏感信息以及漏洞;通过正则表达式过滤用户输入等。但现有的防御技术是在攻击发生后在服务端进行过滤,阻止攻击对服务端造成危害,这种方式增加了服务端的压力和复杂度。并且对web页面进行漏洞扫描,检测潜在的漏洞,需要代码上线后才可以进行扫描,发现漏洞后需要一定时间才能修复,存在滞后性,且漏洞扫描是黑盒机制,不能发现所有的问题。针对现有技术的不足,本发明提出了一种防御跨站脚本攻击的方法及系统,通过在前端的web页面内置防御模块,在可疑脚本被注入后阻止攻击脚本的执行,并将被拦截的信息形成日志以便修复漏洞,减轻了服务端的压力,同时也增加了系统的安全性。



技术实现要素:

本发明提供一种防御跨站脚本攻击的方法及系统,具有通用性强、实施简便等特点,具有广阔的应用前景。

本发明提出的具体方案是:

一种防御跨站脚本攻击的方法:

根据网站的具体架构,对javascript事件以及javascript脚本内容建立关键字黑名单,便于进行过滤审查,

针对标准浏览器事件模型的三个阶段,在事件模型的捕获阶段对页面元素标签内的内容使用过滤模块进行过滤审查,防止敏感事件的触发,

通过检测页面dom树发生的变化,对页面加载的每个静态脚本文件进行监控,使用过滤模块对脚本文件进行过滤审查,防止可疑脚本的执行,

将所有被拦截的可疑事件以及可疑脚本信息上传给服务器端。

所述的方法还针对网站页面的具体内容,建立敏感事件黑名单。

所述的方法中页面元素标签内的内容包括:内联事件以及内联脚本,内联事件指页面标签元素内的on类内联事件。

所述的方法利用html5的mutationobserverapi在页面加载时对页面内dom树的变化进行检测。

所述的方法使用mutationobserver对页面加载的每个静态脚本文件进行监控,若发现可疑的外部脚本则使用removechild()方法移除dom树的该节点,使攻击脚本无法执行。

一种防御跨站脚本攻击的系统,包括过滤模块、事件拦截模块、脚本拦截模块、上报模块,

过滤模块根据网站的具体架构,对javascript事件以及javascript脚本内容建立关键字黑名单,进行过滤审查,

事件拦截模块基于标准浏览器事件模型的三个阶段,在事件模型的捕获阶段对页面元素标签内的内容使用过滤模块进行过滤审查,防止敏感事件的触发,

脚本拦截模块通过检测页面dom树发生的变化,对页面加载的每个静态脚本文件进行监控,使用过滤模块对脚本文件进行过滤审查,防止可疑脚本的执行,

上报模块将所有被拦截的可疑事件以及可疑脚本信息上传给服务器端。

所述的系统中过滤模块还针对网站页面的具体内容,建立敏感事件黑名单。

所述的系统中页面元素标签内的内容包括:内联事件以及内联脚本,内联事件指页面标签元素内的on类内联事件。

所述的系统中脚本拦截模块利用html5的mutationobserverapi在页面加载时对页面内dom树的变化进行检测。

所述的系统中脚本拦截模块使用mutationobserver对页面加载的每个静态脚本文件进行监控,若发现可疑的外部脚本则使用removechild()方法移除dom树的该节点,使攻击脚本无法执行。

本发明的有益之处是:

本发明提供一种防御跨站脚本攻击的方法:

根据网站的具体架构,对javascript事件以及javascript脚本内容建立关键字黑名单,便于进行过滤审查,

针对标准浏览器事件模型的三个阶段,在事件模型的捕获阶段对页面元素标签内的内容使用过滤模块进行过滤审查,防止敏感事件的触发,

通过检测页面dom树发生的变化,对页面加载的每个静态脚本文件进行监控,使用过滤模块对脚本文件进行过滤审查,防止可疑脚本的执行,

将所有被拦截的可疑事件以及可疑脚本信息上传给服务器端。

利用本发明方法可以在web页面存在漏洞并被注入攻击脚本后有效阻止敏感事件和攻击脚本的执行,提高了系统的安全性,从而有效防御跨站脚本攻击。

附图说明

图1本发明系统功能示意图。

图2本发明方法流程示意图。

具体实施方式

本发明提供一种防御跨站脚本攻击的方法:

根据网站的具体架构,对javascript事件以及javascript脚本内容建立关键字黑名单,便于进行过滤审查,

针对标准浏览器事件模型的三个阶段,在事件模型的捕获阶段对页面元素标签内的内容使用过滤模块进行过滤审查,防止敏感事件的触发,

通过检测页面dom树发生的变化,对页面加载的每个静态脚本文件进行监控,使用过滤模块对脚本文件进行过滤审查,防止可疑脚本的执行,

将所有被拦截的可疑事件以及可疑脚本信息上传给服务器端。

同时提供与上述方法相对应的一种防御跨站脚本攻击的系统,包括过滤模块、事件拦截模块、脚本拦截模块、上报模块,

过滤模块根据网站的具体架构,对javascript事件以及javascript脚本内容建立关键字黑名单,进行过滤审查,

事件拦截模块基于标准浏览器事件模型的三个阶段,在事件模型的捕获阶段对页面元素标签内的内容使用过滤模块进行过滤审查,防止敏感事件的触发,

脚本拦截模块通过检测页面dom树发生的变化,对页面加载的每个静态脚本文件进行监控,使用过滤模块对脚本文件进行过滤审查,防止可疑脚本的执行,

上报模块将所有被拦截的可疑事件以及可疑脚本信息上传给服务器端。

结合附图及具体实施,对本发明做进一步说明。

利用本发明方法及系统,过滤模块根据网站的具体架构,建立javascript内容的关键字黑名单,针对页面的具体内容,建立敏感事件黑名单,

标准浏览器的事件模型存在三个阶段:捕获阶段、目标阶段、冒泡阶段,若跨站攻击脚本被注入到web页面中,攻击脚本会在目标阶段被执行,事件拦截模块在事件模型的捕获阶段对页面元素标签内的内联事件,主要指页面标签元素内的on类内联事件,使用过滤模块进行过滤审查,防止敏感事件的触发,

而一般情况下,攻击者还会向web页面注入一个<script>脚本,所有的攻击操作都在脚本中执行,该注入的攻击脚本会在web页面加载时被执行,并且对内联事件以及内联脚本的监听无法侦测到此静态脚本,但是通过本发明中脚本拦截模块利用html5的mutationobserverapi在页面加载时对页面内dom树生成的节点进行检测,同时使用mutationobserver对页面加载的每个静态脚本文件进行监控,若发现可疑的外部脚本则使用removechild()方法移除该节点,使该攻击脚本无法执行,

通过上报模块上传拦截到的所有可疑事件和脚本至服务器并形成日志,网站管理员可以查看被注入脚本所在的位置,从而修复漏洞。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1