[发明专利]跨站脚本攻击保护有效
申请号: | 201180036200.7 | 申请日: | 2011-06-30 |
公开(公告)号: | CN103026684A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | M·E·祖尔科;O·S·佩克祖尔;M·麦格罗因 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 酆迅;陈姗姗 |
地址: | 美国纽*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 脚本 攻击 保护 | ||
技术领域
本发明通常涉及web应用安全并且尤其涉及用于提供运行时内容净化的方法和系统。
背景技术
确保现代软件系统没有安全漏洞是一项艰巨的任务。这样的系统经常包括大量代码,包括第三方和远程部件。而且,在大多数情况下,防止潜在攻击需要采取的措施远非简洁明了,因为这些措施取决于应用的状态、被处理的(潜在恶意)数据的确切内容以及应用将要使用该数据的用途。在面对web应用时问题会恶化,web应用按照设计经常以用户输入形式的不信任数据为源。而且,web应用经常访问安全敏感资源,诸如数据库、文件系统或者套接字。确保web应用免受恶意攻击的问题因此得到了显著关注。
跨站脚本(XSS)是允许恶意用户向由其他用户浏览的页面注入代码的web应用攻击。在许多分类中,其被认为是最高web应用漏洞类别。XSS问题的最严重结果是攻击者能够使合法用户的浏览器代表该用户执行改变应用状态的操作,或者使用户的浏览器披露私人数据。
存在防御XSS攻击的几种已知方法。一种方案被称为输入过滤。该方案涉及针对恶意数据检查web应用输入并且根据需要对其进行拒绝或者过滤。然而,输入过滤方法不能够确保完全保护,并且如果输入数据被web应用使用在多个上下文(例如HTML和JavaScript)中,则该方法就可能会过度主动积极(以至于无效)。一种可选方案是使用客户端侧保护,从而用户为其浏览器配备自动检测攻击企图的扩展。然而,客户端侧方案对于一些类型的XSS攻击不能正确工作,尤其是对于注入的代码不经过输入参数传送的永久XSS。
再一种方案,也是最公知的方案,被称为输出转义。当应用不能够转义其输出并且攻击者将HTML和/或JavaScript放在站点上,该站点的代码继而在站点访问者的web浏览器中运行时,发生XSS攻击。通过确保应用在仅试图发送纯文本时从不发送命令(HTML),输出转义阻止此发生。具体地说,按照这种方案,通过转义字符,即呈现字符使得它们被认为是数据而不是要由解释器的解析器消耗的元数据,从而防卫XSS攻击。XSS的转义规则对于其中将要嵌入(通常为不信任的)输入的HTML上下文敏感,并且这些规则典型地区分页面的各种部件(即HTML主体、典型属性、JavaScript事件处理机和链接)。设计该方案以确保应用渲染的内容包含代码(即使该代码被输入)。然而,为了成功实现,该方案要求开发者的显著关注以及测试组的积极方案,并且如果应用是利用来自不同供应商的软件创建的组合,则该方案难于实现。输出转义机制也难以维护和自动化。
当动态内容通过web应用被包括在单个文档中的多个不同情境(例如使用HTML、JavaScript等等)中时,输出转义会产生额外的问题。每一个包含的上下文典型地要求使用特有转义方法的不同净化,并且这些不同的转义方法经常不兼容且不能够被一起使用。解决该问题将引起附加的问题。如果在将动态内容包括到结果文档中时执行净化,则可能会难于识别(所包括部分的)外部上下文以及针对该输出应该使用什么转义。渲染特定动态内容的代码部分可能不会意识到其将在哪一个内容中被执行。然而,如果在动态内容包括期间不执行转义而是延迟转义直到应用构建完整的文档,则容易识别每一个要素的上下文,然而此时应用不能区分文档的哪些部分是合法的,哪些是XSS插入的。
这里公开的技术解决了已知现有技术的这些和其他缺陷。
发明内容
通常,本发明提供对web应用内容的运行时输出净化过滤,其中web应用内容包含多个包括有动态输出的上下文。为了方便该操作,提前准备动态生成的内容用于净化,优选地通过web应用本身(或者通过该应用使用的或者与该应用相关联的中间件)进行“标记”。优选地,通过将给定的动态生成内容包围在动态内容指示符之间对该动态生成内容进行标记。按照这样的方式生成标记以使得其不与合法的应用内容冲突并且还防御攻击者可能试图使用以绕开转义的有意冲突。然后,在完成文档生成之后但是在输出(传送)该文档之前,应用生成的内容通过内容净化过滤器进行处理。过滤器使用动态内容标识符以标识和定位需要输出转义的内容。过滤器检测放置了动态生成内容的适当上下文,并且然后应用适当转义。按照这种方式,即使输出内容正从不在相同运行时环境中操作的多个输入源进行组装,也能够提前充分准备输出内容用于转义。按照这种方式,在完成所有其他应用处理并且完整的文档已准备好用于传送到请求的终端用户之后添加转义。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180036200.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:带桌子功能的书架
- 下一篇:银行资料存放取用辅助装置