跨站脚本攻击:XSS
指黑客通过html注入篡改了网页,插入了恶意的脚本,从而在浏览网页时,控制用户浏览器的一种攻击。
XSS根据效果的不同可以分为如下几类:
第一种类型:反射型XSS
反射型XSS只是简单的把用户输入的数据反射给浏览器。也就是说,黑客往往需要诱使用户点击一个恶意链接,才能攻击成功。反射型xss也叫做非持久型xss。
第二种类型:存储型xss
存储型xss会把用户输入的数据存储在服务器端。这种xss具有很强的稳定性。
比如黑客写下一篇包含有恶意Javascript代码的博客文章,文章发表后,所有访问该博客文章的用户,都会在他们的浏览器中执行这段恶意的js代码。黑客把恶意的脚本服务器端,所以这种xss攻击就叫做存储型xss。
存储型xss通常叫做持久型xss
第三种类型:dom based xss
通过修改页面的dom节点形成的xss,称之为dom based xss
xss payload
xss payload实际上就是javascript脚本,例如读取浏览器cookie对象,引发cookie劫持,构造get与post请求
xss构造技巧
1.利用字符编码
2.绕过长度限制
3.使用<base>标签
4.window.name
正确防御xss:
xss的本质是一种html注入,如果使用了mvc框架,那么xss发生在view层,所以在用户提交数据处进行输入检查的方案,其实并不是在真正发生攻击的地方做防御