什么是跨站伪造请求攻击?html
我本身的理解:用户A用浏览器访问量一个存在漏洞的网站B,同时A又访问了恶意网站C,假设用户A在B网站上进行了一次交易,C网站上有个<img src="A网站的交易地址"/>的html片断,那么此时用户A 的浏览器就会向B网站的交易连接发送请求,因为A已经在B网站登陆,因此B网站处理的这个请求,可是这个请求并不是用户A本身行为发送的,可是B网站没法判别是不是用户主动发送,因此形成攻击!能够借助这张图片来理解浏览器
该图取自hyddd的博客 hyddd的博客--《浅谈CSRF攻击方式》
服务器
如何防御?cookie
在服务器端防护,主要作法是在服务器端为每一个用户的cookie设置一个伪随机数网站
生成一个伪随机数放入cookie,而后同时将这个数做为表单的一个隐藏字段写入html页面后提交上来验证spa
为表单设置验证码htm
当浏览器同时打开多个不一样的表单的时候,服务器会建立多个随机数,最后一个表单所对应的随机数会覆盖以前的表单的随机数,此时只能提交最后打开的那一个表单,因此应该要避免这种状况,因此应该为每一个表单的沿着随机数存放在每一个独立的地方
blog
参考: hyddd的博客--《浅谈CSRF攻击方式》
图片