美文网首页
前后端分离下如何防御CSRF攻击

前后端分离下如何防御CSRF攻击

作者: dada0z | 来源:发表于2018-11-11 18:20 被阅读0次

网上有很多关于防御CSRF攻击的文章,大都雷同。方法主要有三种:

  1. 检查Referer
  2. 使用CSRF Token
  3. 使用验证码

第二种方法大都是通过在form中填充隐藏的csrf_token。这种方法适用于服务器端渲染的页面,对于前后端分离的情况就不太适用了。

针对前后端分离情况,我有两种方法。

  1. Cookie-to-header token
    浏览器索要登录页面的时候,服务器生成一个随机的csrf_token,放入cookie中。
Set-Cookie: Csrf-token=i8XNjC4b8KVok4uw5RftR38Wgp2BFwql; expires=Thu, 23-Jul-2015 10:25:33 GMT; Max-Age=31449600; Path=/

浏览器通过JavaScript读取cookie中的Csrf_token,然后在发送请求时作为自定义HTTP头发送回来。

X-Csrf-Token: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql

服务器读取HTTP头中的Csrf_token,与cookie中的Csrf_token比较,一致则放行,否则拒绝。

这种方法为什么能够防御CSRF攻击呢?
关键在于JavaScript读取cookie中的Csrf_token这步。由于浏览器的同源策略,攻击者是无法从被攻击者的cookie中读取任何东西的。所以,攻击者无法成功发起CSRF攻击。

  1. JWT(Json Web Token)
    这个就不展开讲了。

相关文章

  • 前后端分离下如何防御CSRF攻击

    网上有很多关于防御CSRF攻击的文章,大都雷同。方法主要有三种: 检查Referer 使用CSRF Token 使...

  • 要学就学透彻!Spring Security 中 CSRF 防御

    上篇文章松哥和大家聊了什么是 CSRF 攻击,以及 CSRF 攻击要如何防御。主要和大家聊了 Spring Sec...

  • Laravel - CSRF 攻击与防御

    CSRF攻击与防御-start 什么是CSRF攻击?CSRF是跨站请求伪造(Cross-site request ...

  • 网络安全系列(3) CSRF攻击

    1.CSRF概述 1.2 CSRF 攻击实例 1.3 CSRF 攻击的对象 2.当前防御 CSRF 的几种策略 2...

  • 2018-03-29

    CSRF的攻击与防御 一、CSRF简介 CSRF(Cross-Site Request Forgery,跨站点伪造...

  • 防御CSRF攻击

    防御CSRF攻击主要有三种策略:验证HTTP Referer字段,在请求地址中添加token并验证,在HTTP头中...

  • CSRF攻击防御

    CSRF 攻击的应对之道web安全之token和CSRF攻击CSRF Token 的设计是否有其必要性? CSRF...

  • 每日安全资讯(2020.01.14)

    CSRF攻击防御原理因为现代浏览器的工作机制原因,造成一种WEB攻击形态的存在, 这种攻击形式叫做CSRF攻击,以...

  • 什么是CSRF攻击

    本文分享CSRF是什么与如何防范CSRF攻击 CSRF攻击是什么? CSRF(Cross-site request...

  • Cookie与CSFR

    最近在做重构项目时,发现了其中使用了SCRF Token用于防御CSRF攻击,它是这样实现的页面加载时调用后端的一...

网友评论

      本文标题:前后端分离下如何防御CSRF攻击

      本文链接:https://www.haomeiwen.com/subject/dkfffqtx.html