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

    一、设计特点

    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

    五、参考文献

      暂无

  • 相关阅读:
    谈谈你对MVC和三层架构的理解?(月薪三万的面试题)
    logic:iterate 遍历
    db2, oracle和sqlserver取前几行的语法
    数据库常用操作语句
    css中em与px的介绍及换算方法
    禁止浏览器缓存
    JavaScript学习笔记(一)
    CSS控制表格隔行变色与鼠标滑过变色
    程序员——好好规划自己的路
    css规范
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/9947106.html
Copyright © 2011-2022 走看看