CSRF简介

维基百科解释

跨站请求伪造(英語:Cross-site request forgery),也被称为 one-click attack 或者 session riding。
通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。
跟跨(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

常规解释

跨站请求伪造,简称 CSRF。
是一种诱骗用户在当前已登录的应用程序上执行非本意的操作的攻击方法,诱导用户发起非本意的请求,执行恶意操作。
比如让用户在非自愿的情况下访问某个页面请求或者ajax请求,执行用户非自愿的操作。
例如:以用户的名义发送邮件、发送消息、购买商品、转账汇款、发布文章等。

CSRF 防护

1.同源检测,通过检查和校验refer信息,禁止外域或者不信任域名发起的请求
2.令牌同步模式(Synchronizer token pattern,简称STP),对于重要请求,按照约定规则生成令牌,发起请求的时候服务端对令牌进行校验,校验不通过则不处理该请求
3.双重校验机制,在请求中的非cookie位置额外跟服务端约定一个token校验项,让攻击者无法获得该token来防止攻击
4.Samesite Cookie属性,Chrome最新防护机制;Samesite=Strict 模式下,从第三方网站发起的请求都无法带上Cookie

相关链接

Cookie 的 SameSite 属性
如何防csrf攻击
维基百科csrf