Leon's blog Leon's blog
首页
前端
场景
技术
更多
关于
收藏
索引
GitHub (opens new window)

Leon Yu

做一个有个性的开发者~
首页
前端
场景
技术
更多
关于
收藏
索引
GitHub (opens new window)
  • 场景
  • ResizeObserver防抖优化性能
  • useAbortableRequest
  • requestAnimation与滚动
  • 支持promise的并发
  • 单点登录场景与理解
    • cookie 与 session 的区别
    • cookie 与 token 的区别
    • cookie + session 的方式为什么不能防止 CSRF,而 token 可以
  • 前端路由
  • 场景
leon yu
2024-07-30
目录

单点登录场景与理解

提示

刚好遇到SSO单点登录的问题,借此文章整理对应的技术实现与注意事项。

# 单点登录存在的意义

  1. 解决 HTTP 无状态的问题
  2. 解决多系统登录统一认证的问题
  • 多系统登录存在跨域问题,需要解决
  • 使用单点登录,只需要携带统一凭证即可

# 单点登录的具体流程

sso原理

# cookie、session、token 之间的区别

# cookie 与 session 的区别

  1. cookie 数据保存在 client,而 session 数据保存在 server
  2. cookie 的安全性有一定问题,可能回存在 cookie 欺诈的问题
  3. session 会占用较多的服务器资源,同时,如果做了负载均衡,不同服务器之间的 session 信息不会同步
  4. 单个 cookie 最多 4K,一个站点最多保留 20 个 cookie

# cookie 与 token 的区别

  1. cookie + session 是一种常用的解决http无状态的方式,可以创建临时会话
  2. 而token本身是服务端提供给客户端的临时凭证,可以在多系统之间提供临时的身份认证

# cookie + session 的方式为什么不能防止 CSRF,而 token 可以

因为form 发起的 POST 请求并不受到浏览器同源策略的限制,因此可以任意地使用其他域的 Cookie 向其他域发送 POST 请求,形成 CSRF 攻击。在post请求的瞬间,cookie会被浏览器自动添加到请求头中。但token不同,token是开发者为了防范csrf而特别设计的令牌,浏览器不会自动添加到headers里,攻击者也无法访问用户的token,所以提交的表单无法通过服务器过滤,也就无法形成攻击。

# 参考文章

单点登录(SSO) (opens new window)

Session Cookie Token三者的关系和区别 (opens new window)

面试必问:session,cookie和token的区别 (opens new window)

#核心场景
最近更新~: 2024/08/19, 01:05:55
支持promise的并发
前端路由

← 支持promise的并发 前端路由→

最近更新
01
应用层
01-11
02
计算机网络和因特网
12-22
03
关于
12-22
更多文章>
Theme by Vdoing | Copyright © 2024-2025 主题来自 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式