参考文章:
XSS跨域脚本攻击
浅谈CSRF攻击-跨域攻击
XSS攻击与CSRF攻击比较
马三立小品〈逗你玩〉中的小偷就利用xss突破了防盗系统。
防盗系统启动: 妈妈:给我看着衣服 小孩:好的
小偷来
正常工作: 小孩:你是谁? 小偷:我叫张三 小孩:妈妈,有人偷衣服 妈妈:谁? 小孩:张三 小偷被捉
漏洞: 小孩:你是谁? 小偷:我叫逗你玩 小孩:妈妈,有人偷衣服 妈妈:谁? 小孩:逗你玩 妈妈:。。。
csrf是让用户在不知情的情况,冒用其身份发起了一个请求
小偷:你妈妈喊你去买洗衣粉
补充一下,XSS本质是Html注入,和SQL注入差不多。
SQL、Html、人类语言都是指令和数据混在一起,都存在注入风险(程序根据分隔符、标签识别指令和数据,人类则是根据语境、语义和日常经验判断)。
比如注册用户时,用户输入“张三”并提交,服务端会生成“ <p>欢迎新用户,张三</p> ”传给浏览器。
如果用户输入"<script>alert('逗你玩')<script>",服务端会生成 “<p>欢迎新用户,<script>alert('逗你玩')<script></p>”,
输入内容就会被浏览器识别为指令执行,这就是XSS注入;
小偷也是根据这个原理,输入一个有特殊语义的名字,被其他客户端识别为指令,从而完成了一次漂亮的存储型XSS注入攻击。