• 概念:Cross-site request forgery,又称跨站请求伪造。主要是利用 cookie 在同源请求中携带发送给服务器的特点,以此来冒充用户
  • 攻击类型:
    1. GET 类型的 CSRF 攻击,比如在网站中的一个 image 标签里构建一个请求,当用户打开这个网站时就会自动发起提交
    2. POST 类型的 CSRF 攻击,比如构建一个表单,然后隐藏它,当用户进入页面时,自动提交这个表单。
    3. 链接类型的 CSRF 攻击,比如在 a 标签的 href 属性里构建一个请求,然后诱导用户去点击。
  • 如何防止:
    1. 利用 Cookie 的 SameSite 属性
      • 设置 SameSite 为 Strict
    2. 服务端进行同源检测
      • 服务器根据 http 请求头中 origin 或者 referer 信息来判断请求是否为允许访问的站点,从而对请求进行过滤。
    3. CSRF token 验证
      • 服务器向用户返回一个随机数 token
      • 用户请求时都带上 toen