XSS
跨站脚本攻击(Cross-siteScripting,简称XSS)是指攻击者在网页中植入恶意脚本,在用户访问特定网页时,这些恶意脚本会被客户端的浏览器执行,产生破坏性的后果。
XSS攻击分析被分为三个类别:反射型XSS攻击、存储型XSS攻击以及DOM-based XSS攻击。
反射型XSS攻击指的是将恶意javascript代码作为超链接的一部分放置到一个网页上,当用户点击该超链接时,浏览器就会将这段恶意代码发送到服务器上,然后服务器将数据响应给用户,用户将看到网页显示这段恶意代码,而恶意代码又将在用户的浏览器上被执行,这样用户的数据就有可能被恶意代码进行窃取,另外可以通过恶意代码在用户的网页上显示宣传信息,植入各种伪域、跳转页面等等。
存储型XSS攻击指的是将恶意javascript代码作为用户输入的一部分,放置在服务器端,当其他用户浏览这些存储在服务器上的数据时,这段恶意代码也将被执行,造成和反射型XSS攻击同样的攻击效果。
最后,DOM based XSS攻击指的是将恶意javascript代码以直接或间接的方式使用 JavaScript Document Object Model (DOM)注入到页面中,以达到攻击者的恶意目的,这种攻击语法和反射型XSS攻击有很大的区别,主要原因在于不使用XMLHttpRequest来进行数据交互,而是使用浏览器的能力直接加载。
通常,恶意JavaScript代码可以被用户注入到网站中,最常见的是cookie劫持,个人信息和私人文件窃取,调用恶意代码实施跳转。同时,XSS也可以与恶意客户端代码(如植入型广告)结合,还可以被用于网络攻击,如洪水攻击和跨站拒绝服务攻击(DOS)。
XSS攻击可能造成多种影响,如攻击者可以控制受害者的站点,收集受害者的数据,可以拦截受害者的请求,可以泄漏受害者的敏感信息,可以实施受害者的拒绝服务攻击,甚至可以将受害者的浏览器作为联邦活动的目标对象。
对此,XSS攻击可以从安全的设计和实现的角度入手,积极地防止类似的攻击发生,从而较为安全地使网站访问者不受XSS攻击的侵害。有效的方法代码检查和输入输出过滤是降低XSS攻击风险的重要手段,另外,正确的权限管理策略也是重要的组成部分,可以帮助降低XSS攻击的发生率,同时,在系统开发阶段应注意XSS等安全漏洞,采取有效措施,使网站更加安全。