扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共19页)
锁定:使用修订版OWASP Top Ten保证Web应用程序的安全——第一部分
锁定:使用修订版OWASP Top Ten保证Web应用程序的安全——第二部分
锁定:使用修订版OWASP Top Ten保证Web应用程序的安全——第三部分
跨站脚本是最常见的Web应用程序脆弱性。利用这种弱点的脚本可能会给家庭和商业用户造成严重的问题。本文探讨了跨站脚本脆弱性的类型、利用这种弱点造成的个人或商业影响、以及消除或防御它们的办法。
在2007 OWASP Top Ten脆弱性系列文章的第二部分,我们将了解前十脆弱性中排名首位的Web应用程序脆弱性——跨站脚本(XSS)。XSS脆弱性已经出现一段时间。但是,随着针对这种脆弱性的蠕虫和病毒日益增加,与XSS利用有关的商业风险也随之上升。
XSS简介
在允许代码注入的Web应用程序中常常可以发现XSS脆弱性。利用这种弱点的脚本可能来自服务器,但它们并不在那里执行;相反,它们在客户端工作站上执行。有三种基本的XSS脆弱性:反射式、存储式和基于文档对象模型(DOM)的XSS脆弱性。
反射式脆弱性是最常见的形式。当用户可以向一个文本框中输入语法内容,然后在用户的显示器上显示出来时,往往存在这种脆弱性。当一名攻击者用这种脆弱性定位一个页面时,他只需简单地在框中输入脚本。当页面再次显示输入的文本时,脚本就开始执行。
许多时候,必须使用社会工程使用户访问一个专门制作的URL来发动攻击。这样做可能导致在页面中插入攻击者的脚本(Jeremiah Grossman,《跨站脚本蠕虫和病毒》,2006年4月)。
存储脆弱性就像它的名称指出的那样。攻击者向其他用户经常访问的网站,或网站的一个区域提交利用XSS弱点的代码。这类例子包括社交网络网站和读者对所发表内容的评论。当受害者的浏览器打开被感染的网页时,脚本不需要用户干预即可自动执行。这是因为存储的恶意脚本被浏览器看作是来自一个可信网站/服务器的脚本。
下面是一个非常简单的存储脚本攻击实例。
最初,脚本可能被插入到一个表单框中,并最终进入大量用户使用的论坛或其它服务中。例如,在一个在线论坛中发贴时,攻击者可能会输入以下脚本:
<script>alert('Hello World')</script>
当一个没有疑心的用户打开论坛中的贴子时,这段脚本就会在用户的工作站上运行。其显示结果是一段无害的文本,但如果脚本中包括以下代码,情况就会有所不同:
最后一种XSS弱点是基于DOM的脆弱性。DOM是AJAX的一部分,它是一个:
“…允许程序员访问和操作一个Web页面或文档内容的界面。它为一个页面中的单独元素和内容的结构化面向对象的表示方法提供恢复和设置这些对象的属性的方法”(Mike Hall,《文档对象模型简介》,2007年)。
这种脆弱性存在于客户端的脚本中。在一个访问URL请求参数的脚本模块中通常可以找到它的踪迹。如果脚本使用参数信息——不进行编码或过滤——在它运行的页面中写入HTML,其中很有可能就存在有XSS脆弱性。在Amit Klein的文章《基于DOM的跨站脚本或第三类XSS》(2005年)中可找到有关DOM脆弱性的实例和其它信息。
基于DOM的XSS攻击很难防御。因为一个DOM页面层次中的所有方法都是可信的,插入到一个被调用参数中的恶意代码将会和非恶意脚本一样,以同样的安全级别执行。像存储XSS攻击一样,预防恶意DOM脚本需要程序员注意使用安全的编码技巧。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者