反射型XSS(也叫非持久型):恶意JavaScript脚本属于用户发送给网站请求中的一部分,随后网站又将这部分返回给用户,恶意脚本在页面中被执行,一般发生在前后端一体的应用中,服务端逻辑会改变最终的网页代码。
基于DOM的XSS:这种攻击不需要经过服务器,网页本身的JavaScript也是可以改变HTML的,黑客正是利用这一点来实现插入恶意脚本。
存储型XSS(也叫持久型XSS):黑客将恶意JavaScript脚本长期保存在服务端数据库中,用户一旦访问相关页面数据,恶意脚本就会被执行。常见于搜索、微博、社区贴吧评论等。
区别:反射型的XSS 的恶意脚本存在URL 里,存储型XSS 的恶意代码存在数据库里。而基于DOM型的XSS攻击中,取出和执行恶意代码由浏览器端完成,属于前端JavaScript自身的安全漏洞,其他两种XSS都属于服务端的安全漏洞。