简介
跨站请求伪造(Cross-site request forgery),通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
攻击流程
- 攻击者伪造一个页面,页面可伪造用户请求。
- 用户点击页面,攻击者伪造的请求被提交。
攻击实现条件
- 用户处于登录状态。
- 伪造的链接与正常的应用链接一致。
- 后端未校验用户请求的合法性。
漏洞防护
- 添加中间环节:伪造的用户请求会被服务器执行,那么只需要添加一个中间过程便可以避免这类问题的出现,如:添加验证过程,添加验证码,让用户确认自己的操作。
- 验证用户请求的合法性:如:1.验证referer。2.利用token(token必须为一次性,token必须有随机性)。