• 忘词本项目总结之信息安全问题----用户安全登陆及其校验机制设计


    一、设计特点

    1)同一台设备可以保持多个会话

    2)同一个Session可以登陆多个账户而不出现信息错乱

    3)每个Session会话维持一个LoginUserMap

    4)每个LoginUserMap包含多个<token,User>,以token唯一地标识会话内的登陆用户

      即 : 不同的Session会话,即使是拿到token也无济于事

    5) 不同的设备可以登陆同一个账户而不出现信息错乱或者“挤下线”行为

    6)通过设置User表的字段accountState(属性值有:锁定中、已激活、待激活三种值;还可增加值,例如:操作授权码等)控制普通用户使用软件服务权限。

      可在LoginFilter中,进行判定。

      

      小结:在HTTP无状态协议下,以Session[sessionId]唯一地绑定(标识)一台终端设备;在Session机制下,以token绑定(标识)唯一的用户。

    二、登录与全局登录校验机制的业务流程

      通过自定义配置全局性过滤器,对login、register、register-activate等URI映射路径的登陆校验放行,但对除此之外的其他所有URI映射均进行操作前登陆校验。通过对每个会话绑定一个LoginUserMap,其节点由<token,User>组成;通过Session + LoginUserMap + token维护用户登录状态;通过客户端上传token,服务器端接收token,去对应Session的LoginUserMap中以token为键寻找User有无判别是否已登录。

    三、破解办法

      原理:拿到有效的sessionID,发送请求时带上该有效的sessionId,便解决了伪装成同一Session会话的问题;再带上该sessionId内有效登陆用户的token,解决伪装成同一Session中唯一地那位已登录的用户问题。以上两步骤,任一步骤都不能出错。

    四、翻译源

      [you dao] http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=family

      [Google]https://translate.google.cn/translate_a/single?client=gtx&sl=en&tl=ko&dt=t&q=googleq=how%20are%20you

      [search city by ip]http://pv.sohu.com/cityjson?ie=utf-8

    五、参考文献

      暂无

  • 相关阅读:
    如何获取喜欢的微信公众号封面图
    array_filter — 用回调函数过滤数组中的单元
    H5实现长按复制
    微信第三方平台 授权链接 报错
    Oracle 查询函数、存储过程、触发器、表、视图等
    Linux查看端口、及根据进程PID查看对应应用端口
    【Sed】sed n与正则
    【Android】android编译之source build/envsetup.sh简单用法
    一文搞定:SpringBoot、SLF4j、Log4j、Logback、Netty之间混乱关系(史上最全)
    数据库系列:高并发下的数据字段变更
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/9947106.html
Copyright © 2020-2023  润新知