CSRF攻击
跨站请求伪造,缩写为:CSRF/XSRF
定义
CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
危害
攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账等。造成的问题包括:个人隐私泄露以及财产安全。
例子
- 登录受信任网站A,并在本地生成Cookie;
- 在不登出A的情况下,访问危险网站B;
- 网站B中链接操作网站A中数据。
解决方法
以下所有方法的思路都是一样的:在客户端页面加入伪随机数。
方法一:Cookie Hashing。因为在黑客网站上无法获取到其他网站的Cookie(理论上),无法拿到正确的Hash,从而无法攻击。但是可能会通过XSS攻击泄露Cookie信息。一般攻击者看到要计算Hash,能劝退99%了。
方法二:加入一次性token。每个表单的提交都要请求不一样的token,服务器始终保存客户最后一次请求的token,则可以防止黑客提交其他表单。但是要确保服务器不会对卡片式浏览器产生影响。
方法三:验证码。对用户体验影响较大。