在web项目安全漏洞中,XSS是最为流程的漏洞类型之一,今天就来介绍一下XSS。
01
—
XSS介绍
跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
02
—
XSS分类
XSS简单的说就是没有做好校验,因为前端的用户输入的数据别人可以拦截,然后嵌入一些脚本代码或者其它的而达到不良的结果,有点类似与sql注入的攻击。
XSS攻击一般有这么三种分类:反射型XSS,存储型XSS,DOM型XSS。接下来,分别介绍一下三种分类,及其差别。
03
—
反射型XSS
攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。
04
—
存储型XSS
代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS非常危险,容易造成蠕虫,大量盗窃cookie。
存储型XSS和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库、内存、文件系统等),下次请求目标页面时不用再提交XSS代码,最典型的例子就是留言板XSS,用户提交一条包含XSS代码的留言存储到数据库,目标用户查看留言板时,那些留言就会从数据库中加载出来并显示,于是发生了XSS攻击。
05
—
DOM型XSS
基于文档对象模型(Document Objeet Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如URI ,location,referrer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。
DOM XSS和反射型XSS、存储型XSS的区别在于DOM XSS代码并不需要服务器参与,发出XSS攻击靠的是浏览器的DOM解析,完全是客户端的事情。
网友评论