跨站请求伪造,缩写为:CSRF/XSRF

定义

​ CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。

危害

​ 攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账等。造成的问题包括:个人隐私泄露以及财产安全。

例子

  1. 登录受信任网站A,并在本地生成Cookie;
  2. 在不登出A的情况下,访问危险网站B;
  3. 网站B中链接操作网站A中数据。

解决方法

以下所有方法的思路都是一样的:在客户端页面加入伪随机数。

方法一:Cookie Hashing。因为在黑客网站上无法获取到其他网站的Cookie(理论上),无法拿到正确的Hash,从而无法攻击。但是可能会通过XSS攻击泄露Cookie信息。一般攻击者看到要计算Hash,能劝退99%了。

方法二:加入一次性token。每个表单的提交都要请求不一样的token,服务器始终保存客户最后一次请求的token,则可以防止黑客提交其他表单。但是要确保服务器不会对卡片式浏览器产生影响。

方法三:验证码。对用户体验影响较大。