一、 ** 概述**
CSRF(Cross-site Request
Forgery:跨站请求伪造),利用受害者尚未失效的身份信息(cookie/会话),创建恶意的web页面产生伪造请求,在受害者不知情的情况下,向服务器发送请求完成非法操作(增删改查用户信息或业务数据、转账、改密、评论、点关注、点赞等),对用户和企业的数据安全造成了非常严重的威胁。本文从攻击者的攻击手法进行研究,站在攻击者的角度研究CSRF攻击,并同步给出了有效的阻击方法,正所谓未知攻,焉知防。
CSRF攻击原理如图1所示。
图1 漏洞原理图
** 解读:**
1>User访问存在CSRF漏洞的站点A
2>User登录成功,在用户浏览器中产生A的Cookie
3>User未登出网站A ,攻击者设法 (点击链接、xss方式) 让受害者访问自己的站点B
4>受害者中招访问了攻击者构造的站点B
5>攻击者带着User的Cookie发送伪造的请求给站点A(实现非法操作)
6>站点A检测到为User的Cookie信息便执行了请求
7>攻击者达到目的,一次CSRF攻击完成。
针对CSRF,一般的防护做法是在后端添加“Referer”和“token”限制。如图2、图3所示。
图2 添加Referer
图3 添加Token
以上两种传统的防御方法虽然能够在一定程度上防范CSRF攻击,但攻击者仍然有办法来绕过这些限制,对用户和企业的数据安全造成了非常严重的威胁。