前后端分离架构解决方案(从Session到Token)

前后端分离架构解决方案(从Session到Token)

  系统应用架构的发展,从早期的单体架构,发展到现在基本上都是前后端分离的架构(很大程度上是因为移动互联网的飞速发展)。开发模式上,也从早期的程序员前后台都需要写,演化成现在分为前端开发工程师和后端开发工程师。具体如下图所示:

  

  

  前后端分离之后,就会面临着很多问题,之前传统的session认证方式,对移动端支持有限,尤其是安全层面的问题。传统用session进行登录流程如下:

    而用session做认证,容易遭受CSRF的攻击,如下图最经典的银行转账案例:  

    

  而CSRF有两个经典的解决方案

  其一、验证HTTP Referer 字段

  根据 HTTP 协议,在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址

   这种方法的显而易见的好处就是简单易行,只需要在最后给所有安全敏感的请求统一增加一个拦截器来检查 Referer 的值就可以。

   但是不安全, Referer有的浏览器也可以篡改,比如IE6。

   其二、HTTP头部中添加Token,具体Token的验证流程如下所示:

  

 

  最后说一下CSRF的实现方式主要有下面三种:

  1、Nginx等中间件中配置

  2、程序中借助于框架,比如SpringSecurity。

  3、自定义代码验证拦截(网关层)。  

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部