对csrf的理解

  1. 用户浏览并登陆信任网站A
  2. 通过验证,在用户浏览器产出A的cookie
  3. 用户在没有登出A的情况下访问攻击网站B
  4. B要求访问第三方站点A,发出一个请求
  5. 根据B的请求,浏览器带着A的cookie访问A
  6. A不知道请求是用户发出的还是B发出的,A会根据用户的权限处理B的请求,这样B就达到了模拟用户操作的

如何防止csrf攻击 

  1. 在客户端向后端请求界面数据的时候,后端会往响应中的 cookie 中设置 csrf_token 的值
  2. 在 Form 表单中添加一个隐藏的的字段,值也是 csrf_token
  3. 在用户点击提交的时候,会带上这两个值向后台发起请求
  4. 后端接受到请求,以会以下几件事件:
    • 从 cookie中取出 csrf_token
    • 从 表单数据中取出来隐藏的 csrf_token 的值
    • 进行对比
  5. 如果比较之后两值一样,那么代表是正常的请求,如果没取到或者比较不一样,代表不是正常的请求,不执行下一步操作
原文地址:https://www.cnblogs.com/whigym/p/9987940.html