Cross Site Request Forgery,跨站请求伪造
伪造用户请求,向目标服务器发起恶意请求
攻击者借助受害者的 Cookie 骗取服务器的信任,可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击服务器;
从而在并未授权的情况下执行在权限保护之下的操作

CSRF防范措施

  1. 服务端强 token验证
  2. Double Cookie Submit
  3. Custom Header 自定义 header头
  4. 验证码验证,牺牲用户体验

Referer Check

HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。
通过 Referer Check,可以检查请求是否来自合法的”源”,防御 CSRF 攻击,只需要对于每一个删帖请求验证其 Referer 值

添加 token 验证

抵御 CSRF,关键在于在请求中放入攻击者所不能伪造的信息,并且该信息不存在于 Cookie 之中
在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求

验证码

验证码被认为是对抗 CSRF 攻击最简洁而有效的防御方法