Cross-Site Request Forgery
挟持用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法
示例说明
受害者A,攻击者B
A在银行有一笔存款,他正常向别人寄钱,请求的链接如下:http://bank.cn?account=A&amount=100&for=C
B该银行也有账户,他知道可以通过一个链接请求进行转账:http://bank.cn?account=A&amount=100&for=B,但是发送这个请求的时候服务器会校验登录状态,B没有A的账号密码也登录不了
B做了一个网站,在网站中放入一个链接:http://bank.cn?account=A&amount=100&for=B 并诱使A访问他的网站
A点击链接之后,浏览器会附带Cookie等认证信息发送给银行,一般情况下服务器在校验Cookie认证信息的时候还会校验Session信息,则此时校验会失败。
但是如果A此时还打开这银行的网页或者刚关闭不久Session未失效。这时,激动的时候发生了,这个Url请求就会得到响应,钱将从A的账号转移到B的账号
防护策略与检查点
防御思路:设置一个Token存放于Session或者Cookie中,发起请求的时候带上该Token的值,服务端进行比对
1.Cookie Token失效时间
2.是否允许跨域请求
3.Token是否易获取
4.是否存在本域的请求,如发图片、链接、评论等
参考链接
谷歌CSRF举例讲解CSRF原理和危害
https://www.cnblogs.com/meituantech/p/9777222.html
CSRF参考链接
http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html