1、非持久型XSS(反射型XSS)
当攻击者提供一些代码时,服务器端马上返回页面的执行结果;
2、持久型XSS(存储型XSS)
当攻击者提交到 web 应用程序里的数据会永久存储到服务器的时候会产生此类漏洞,之后如果没有经过 HTML 编码,那么每一个访问该页面的用户都会被攻击;
例如在线留言板,它允许用户提交数据;
3、基于DOM的XSS(本地跨站)
DOM(文档对象模型):基于 html/xml 上的标准对象模型;
这类漏洞出现在页面的客户端脚本上,例如:
如果一个 javascript 脚本处理 url 请求参数,然后使用这个参数值来显示给用户页面,没有经过任何编码,那么 XSS 漏洞产生,和非持久型类似,攻击者可以用恶意代码填充这个参数,然后用覆写的页面诱骗用户点击;