CSRF是什么?浏览器
CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。安全
是一种挟制用户在当前已登陆的Web应用程序上执行非本意的操做的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF可以作的事情包括:以你名义发送邮件,发消息,盗取你的帐号,甚至于购买商品,虚拟货币转帐......形成的问题包括:我的隐私泄露以及财产安全。cookie
从上面 CSRF 攻击原理能够看出,要完成一次 CSRF 攻击,须要被攻击者完成两个步骤:session
1.登录受信任网站 A,并在本地生成 COOKIE。
2.在不登出 A 的状况下,访问危险网站 B。 post
若是不知足以上两个条件中的一个,就不会受到 CSRF 的攻击,如下状况可能会致使 CSRF: 网站
1.登陆了一个网站后,打开一个 tab 页面并访问另外的网站。
2.关闭浏览器了后,本地的 Cookie 还没有过时,你上次的会话尚未已经结束。(事实上,关闭浏览器不能结束一个会话,但大多数人都会错误的认为关闭浏览器就等于退出登陆/结束会话了......)blog
解决办法:token
1.经过 referer、token 或者 验证码 来检测用户提交。it
2.尽可能不要在页面的连接中暴露用户隐私信息。io
3.对于用户修改删除等操做最好都使用post 操做 。
4.避免全站通用的cookie,严格设置cookie的域。