防御跨站脚本攻击的方法及装置制造方法及图纸

技术编号:9667679 阅读:87 留言:0更新日期:2014-02-14 05:52
本发明专利技术公开了一种防御跨站脚本攻击的方法及装置,属于网页设计技术领域。所述方法包括:对网页设计模板文件进行词法分析,获取模板文件中的UI变量;获取每个UI变量在模板文件中所处的语义环境;获取与每个UI变量所处的语义环境对应的转义方式;将所述转义方式添加到所述UI变量所在模板文件中以使得添加转义方式后的模板文件上线后,根据所述转义方式对相应的UI变量进行转义。根据本发明专利技术,能够提高UI变量输出时的安全性,从而有效防御跨站脚本攻击。

【技术实现步骤摘要】
防御跨站脚本攻击的方法及装置
本专利技术涉及网页设计领域,具体涉及一种防御跨站脚本攻击的方法及装置。
技术介绍
在Web开发中,随着用户可以输入的地方越来越多,用户输入导致的安全问题越来越严重。一种常见的安全问题即为跨站脚本攻击(CrossSiteScripting,XSS),XSS攻击是指恶意攻击者往Web页面里嵌入恶意html代码,当用户浏览该页面之时,嵌入其中的html代码会被执行,从而达到恶意用户的特殊目的。XSS攻击可以盗取用户的账号、获取管理员权限,造成非常严重的后果。如何快速、安全的解决XSS安全问题,在网页开发中显得非常重要。现有技术的一种方案是通过一些工具对线上服务进行扫描,扫描过程中会带上一些恶意的代码,如果返回的内容没有将这些恶意代码对应的内容去除或者转码,则网站存在XSS安全问题。这种方案虽然可以发现线上的一些问题,但有如下的缺点:代码上线后才进行扫描,有的安全漏洞可能已经被人利用;扫描是一个黑盒机制,不能发现所有的问题。现有技术的另一种方案是在后端的逻辑层对传递到网页设计模板里的用户界面(UserInterface,UI)变量进行统一转码,这种转码使用通用的转义函数进行,能够让UI变量传递到模板里尽量安全。但是,在具体实现时发现,采用这种方案后,仍然存在较多的XSS安全问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的防御跨站脚本攻击的方法及装置。依据本专利技术的一个方面,提供了一种防御跨站脚本攻击的方法,包括:对网页设计模板文件进行词法分析,获取模板文件中的用户界面(UI)变量;获取每个UI变量在模板文件中所处的语义环境;获取与每个UI变量所处的语义环境对应的转义方式;将所述转义方式添加到所述UI变量所在模板文件中以使得添加转义方式后的模板文件上线后,根据所述转义方式对相应的UI变量进行转义。可选地,所述语义环境包括如下的一个或多个:HTML环境,此环境中UI变量使用在HTML页面标签中或标签属性值中;JS环境,此环境中UI变量使用在JS代码中;Data环境,此环境中UI变量使用在JS环境的innerHTML插入字符串中;url环境,此环境中UI变量使用在模板链接地址URL的参数中;event环境,此环境中UI变量使用在HTML页面标签的事件函数参数中;callback环境,此环境中UI变量为浏览器端传递过来的callback参数。可选地,所述方法还包括:建立语义环境与转义方式的对应关系;所述获取与每个UI变量所处的语义环境对应的转义方式包括:根据所述对应关系获取与每个UI变量所处的语义环境对应的转义方式。可选地,所述模板文件为Smarty模板文件。根据本专利技术的另一方面,提供了一种防御跨站脚本攻击的装置,包括:词法分析单元,适于对网页设计模板文件进行词法分析,获取模板文件中的用户界面(UI)变量;语义环境获取单元,适于获取每个UI变量在模板文件中所处的语义环境;转义方式获取单元,适于获取与每个UI变量所处的语义环境对应的转义方式;转义方式添加单元,适于将所述转义方式添加到所述UI变量所在模板文件中以使得添加转义方式后的模板文件上线后,根据所述转义方式对相应的UI变量进行转义。可选地,所述语义环境包括如下的一个或多个:HTML环境,此环境中UI变量使用在HTML页面标签中或标签属性值中;JS环境,此环境中UI变量使用在JS代码中;Data环境,此环境中UI变量使用在JS环境的innerHTML插入字符串中;url环境,此环境中UI变量使用在模板链接地址URL的参数中;event环境,此环境中UI变量使用在HTML页面标签的事件函数参数中;callback环境,此环境中UI变量为浏览器端传递过来的callback参数。可选地,所述装置还包括对应关系建立单元,适于建立语义环境与转义方式的对应关系;所述转义方式获取单元进一步适于:根据所述对应关系获取与每个UI变量所处的语义环境对应的转义方式。可选地,所述模板文件为Smarty模板文件。根据本专利技术实施例的技术方案,通过分析模板代码,找出模板代码里输出的UI变量,正确识别UI变量在模板文件中所处的语义环境,并在模板文件中追加与语义环境对应的转义方式,这样,通过在模板层结合语义环境进行转义,能够提高UI变量输出时的安全性,从而有效防御跨站脚本攻击。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的防御跨站脚本攻击的方法流程图;图2示出了根据本专利技术一个实施例的防御跨站脚本攻击的装置结构图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。为防御跨站脚本攻击,现有技术的一种方案是通过在后端的逻辑层对传递到网页设计模板里的UI变量进行统一转码,这种转码使用通用的转义函数进行,仍然存在较多的XSS安全问题。针对这一问题,本申请专利技术人进行理论分析和大量实验后发现,该方案是在逻辑层进行转义,虽然可以让很多UI变量输出时是安全的,但由于在逻辑层无法感知UI变量在模板里所处的语义环境,只能对所有UI变量进行统一转码,使得有些UI变量使用的转义方式(转义函数)不正确或不准确,导致有些UI变量输出时仍然存在安全问题。于是,本专利技术实施例提供一种防御跨站脚本攻击的方法及装置,通过分析模板代码,找出模板代码里输出的UI变量,正确识别UI变量在模板文件中所处的语义环境,并在模板文件中追加与语义环境对应的转义方式,这样,通过在模板层结合语义环境进行转义,使得每个UI变量都能使用正确的转义方式进行转义,能够提高UI变量输出时的安全性,从而有效防御跨站脚本攻击。图1示出了根据本专利技术一个实施例的防御跨站脚本攻击的方法流程图。参照图1,所述方法可以包括:步骤102,对网页设计模板文件进行词法分析,获取模板文件中的用户界面(UI)变量;模板是一种分离数据表现层和逻辑层的策略,其中,表现层实现页面数据按照预定方式进行展示,逻辑层是页面展示的数据的来源。网页设计模板是指嵌入了逻辑层传递过来的UI变量的html文件。UI变量是UI进行解析的对象,也是页面动态数据获取的载体。其中,所述模板文件可以为Smarty模板文件或者其它类型的模板文件。通过对模板文件进行词法分析,可以获取到模板文件中的UI变量。对模板文件进行词法分析以获取其中包含的UI变量的算法有多种,本专利技术实施例对具体的词法分析的算法不做限制。步骤104,获取每个UI变量在模板文件中所处的语义环境;如前所述,模板文件是嵌入了UI变量的html文件,可以将本文档来自技高网...
防御跨站脚本攻击的方法及装置

【技术保护点】
一种防御跨站脚本攻击的方法,包括:对网页设计模板文件进行词法分析,获取模板文件中的用户界面UI变量;获取每个UI变量在模板文件中所处的语义环境;获取与每个UI变量所处的语义环境对应的转义方式;将所述转义方式添加到所述UI变量所在模板文件中以使得添加转义方式后的模板文件上线后,根据所述转义方式对相应的UI变量进行转义。

【技术特征摘要】
1.一种防御跨站脚本攻击的方法,包括:对网页设计模板文件进行词法分析,获取模板文件中的用户界面UI变量;获取每个UI变量在模板文件中所处的语义环境;获取与每个UI变量所处的语义环境对应的转义方式;将所述转义方式添加到所述UI变量所在模板文件中以使得添加转义方式后的模板文件上线后,根据所述转义方式对相应的UI变量进行转义;其中模板文件是嵌入了UI变量的html文件,将html文件中相同类型的语句或者语句的预定部分作为一种语义环境。2.如权利要求1所述的方法,其中,所述语义环境包括如下的一个或多个:HTML环境,此环境中UI变量使用在HTML页面标签中或标签属性值中;JS环境,此环境中UI变量使用在JS代码中;Data环境,此环境中UI变量使用在JS环境的innerHTML插入字符串中;url环境,此环境中UI变量使用在模板链接地址URL的参数中;event环境,此环境中UI变量使用在HTML页面标签的事件函数参数中;callback环境,此环境中UI变量为浏览器端传递过来的callback参数。3.如权利要求1或2所述的方法,其中,还包括:建立语义环境与转义方式的对应关系;所述获取与每个UI变量所处的语义环境对应的转义方式包括:根据所述对应关系获取与每个UI变量所处的语义环境对应的转义方式。4.如权利要求1所述的方法,其中,所述模板文件为Smarty模板文件。5.一种防御跨站脚本攻击的装置,包括:词法分...

【专利技术属性】
技术研发人员:李成银
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1