当前位置: 首页 > Web前端 > HTML

跨站脚本攻击XSS

时间:2023-04-02 22:41:03 HTML

XSSCross-sitescriptingattack介绍,英文全称CrossSiteScrit,原缩写为CSS,但为了与层叠样式表(CSS)区别,安全领域称之为“XSS”。XSS攻击通常是指黑客通过“HTML注入”对网页进行篡改,插入恶意脚本,从而在用户浏览网页时控制用户浏览器的一种攻击方式。起初,这种攻击的演示案例是跨域的,因此被称为“跨站脚本”。但在今天,是否跨域已经不重要了。那么什么是XSS?看下面的例子:假设一个页面直接向页面输出用户输入的参数:".$input."

";?>一般情况下,用户向param提交的数据会显示在页面上,比如提交:http://www.a.com/test.php?param=Thisisatest!但是如果你提交一段HTML代码:http://www.a.com/test.php?param=你会发现alert(/xss/)是在当前页面执行。用户输入的Script脚本已经写入页面,这显然是开发者不想看到的。上面的例子是XSS的第一种:ReflectedXSS。XSS根据作用不同可分为以下几类。ReflectedXSSReflectedXSS只是将用户输入的数据“反映”到浏览器。也就是说,黑客往往需要引诱用户“点击”恶意链接,攻击才能成功。反射型XSS又称“非持久化”存储型XSS存储型XSS会将用户输入的数据“存储”在服务器端。这种XSS具有很强的稳定性。一个常见的场景是黑客写了一篇包含恶意JavaScript代码的博客文章。文章发表后,所有访问该博客的用户都会在浏览器中执行这段恶意JavaScript代码。脚本保存到服务器端,所以这种XSS攻击称为“存储型XSS”。DOMBasedXSS其实这类XSS并不是按照“数据是否存储在服务器端”来划分的。DOMBasedXSS来自effect也是一种反射型XSS。单独划分是因为DOMBasedXSS的形成原因比较特殊。通过修改页面DOM节点形成的XSS称为DOMBasedXSS