分布式会话存储策略

不靠谱

  • mysql 存储 cookie/信息
    • qps 不够
  • mysql 存储 cookie/信息,同时存储到 redis

    • redis 挂掉,直接打 mysql,不够

      靠谱

  • redis 存储 cookie/信息

    • 让 redis 高可用

**


**

会话有效期

  • tomcat 默认 30 min

    会话续命

  • 触发操作延长生命周期

    • 设置 30 min 后的时间, 不能无脑

安全管理

掩耳盗铃

  • 使用参数等
  • 使用 header

使用 https

  • 只能保证传输不给窃听
  • 但是还是能被直接查看

使用自定义协议

  • 比如限制不能 pc
  • 比如移动端用一些自定义协议
    • 内容是用 protobuf,而不是普通的 键值对

登录态

强登录态

  • 要求登录

无登录态

  • 无需登录

弱登录态

  • 处理相同的请求
    • 有无登录可能会不同的结果

存在登录态时,要注意续命

  • 请求续命
    • 直接发请求续命
  • keeplive 续命
    • js 层面,模拟一个 ping 包(可以就是普通的 http 请求), 定时发送请求来续命

sso 策略

同域名

  • 保证登录存储相同即可

    根域名相同,子域名不相同

  • httpOnly设置为true,让 js 无法修改浏览器的 cookie

  • domain设置为 / ,只要访问地址为一级域名的子域名即可

根域名和子域名都不同

  • SSO 要作为一个服务存在
  • 类似 Oauth