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

一、设计特点

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

五、参考文献

  暂无

原文地址:https://www.cnblogs.com/johnnyzen/p/9947106.html