论文部分内容阅读
在强调以互动为核心的Web2.0时代,用户已不再是单纯的信息获取者而是信息的创造者,互联网也不再是一个完全的虚拟世界而成为人们现实生活的纽带。诸如社交网络、个人博客、内容分享等新兴的功能强大的Web应用程序正在不断涌现,因此,对于这些不同于传统应用程序所带来的安全问题引起了研究人员的极大兴趣。客户端脚本是Web应用程序的基石,越来越多的功能通过脚本在客户端实现,带来了良好的用户体验,然而,由于客户端所面临的网络环境复杂并且不受程序开发人员所控制,使其屡受攻击,攻击者利用基于脚本的攻击向量就能完成对Web用户的攻击,其危害程度不亚于直接攻击应用程序服务器端。本文首先对与Web应用程序紧密相关的核心技术进行了系统的阐述,然后重点研究了典型的跨站脚本攻击(Cross-Site Scripting, XSS),分析了三种不同类型的XSS漏洞以及其发生的原因和攻击的过程,并结合广泛的实践经验,分析了多种不同的XSS攻击向量和漏洞挖掘技巧。跨站请求伪造(Cross-Site RequestForgery,CSRF/XSRF)和点击劫持(ClickJacking)则是两种新型的Web客户端攻击技术,本文分析了其攻击原理和防御机制,尤其重点研究了各种漏洞间的组合攻击。此外,本文针对现有XSS防御措施的不足之处,提出了一种客户端的防御算法。XSS攻击本质上是一种恶意脚本的注入攻击,该算法通过在JavaScript抽象语法树的基础上实施静态约束分析,建立敏感数据的约束系统,进而能准确地对污点(Taint)进行动态追踪,有效阻止恶意脚本的执行。最后,基于此算法思想,本文开发了一款Firefox平台的浏览器插件,实验结果表明,该插件能有效地防御跨站脚本攻击,从而提升了浏览器安全性,保障用户的敏感数据免受攻击,并且无需修改Web应用程序本身的代码,具有良好的实用性和可扩展性。