当前位置 : 主页 > 编程语言 > 其它开发 >

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

来源:互联网 收集:自由互联 发布时间:2022-05-30
系统应用架构的发展,从早期的单体架构,发展到现在基本上都是前后端分离的架构(很大程度上是因为移动互联网的飞速发展)。开发模式上,也从早期的程序员前后台都需要写,演

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

  

 

 

   

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

 

 

 

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

    

 

 

 

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

  其一、验证HTTP Referer 字段

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

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

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

 

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

  

 

 

 

 

 

 

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

  1、Nginx等中间件中配置。

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

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

 

上一篇:PowerShell 笔记 - 管道与模块
下一篇:没有了
网友评论