交易系统用户服务子系统

        互联网行业, 流量很重要, 流量来源于用户, 而用户系统则承载着用户的所有属性,行为等信息. 用户系统的设计基于其行业的特点则侧重点有所不同. 

交易系统其安全很重要,  所以在设计时除了满足一般的用户系统的基本功能外, 对安全的考虑程度尤为重要.

用户服务系统不会涉及具体的业务逻辑, 只处理其用户相关的管理,如注册 ,登录, 密码, 鉴权等功能.

  • 用户的基本属性:

用户ID, 推荐人ID, 用户呢称, 性别, 登录名称, 登录密码, 邮箱, 手机号, 国家区号, 账户类型, 账户状态, 注册时间, 更新时间, 注册渠道, 最后登录ip.

其他的一些字段根据需求取舍, 如: 用户头像, 密码难度级别, 认证状态等.

  • 安全策略:

从登陆,资金安全方面的考虑,会加上google认证码, 交易密码, 资金提取密码, 所以会有以下字段:

登陆鉴权(密码,google,异地,组合方式.)

交易鉴权(需要密码, 不需要密码)

资金提取(资金密码, 动态密码(手机or邮箱验证码),google认证码, 或组合方式), 资金密码

密码尝试次数类型(比如密码错误5次则锁定账户24小时)

因为要保存google认证码的key, 交易密码, 资金提取密码, 所以其对应的密码保存需要相应的字段.即:google密钥, 交易密码,资金密码.

这些密码通常使用hash函数进行加密. 通常使用SHA算法+salt.

针对于这个安全策略的设置,需要一个相应的表记录相应的操作(用户设置策略的记录): 用户开启是的那种安全策略,记录的对应的秘钥,登录的方式.

额外提一点:针对安全登录的后台发出的验证码, 可使用db记录或redis记录.

  • 登录ip:

主要用于记录用户的登录区域变化; 分析全球用户的分布情况(不排除使用vpn);

该表字段主要有:用户uid, 用户登录名称, ip, 城市区域, 登录方式(web,android,ios等), 时间.

根据IP查询城市区域的数据源可以参考: https://github.com/maxmind/GeoIP2-java

  • 用户操作记录:

主要用于记录用户的一些重要的操作行为,比如登入,登出,交易,充值,转账,提现,密码更换等.

该表字段主要要:用户uid, 操作cmd, 操作uri, 操作参数, 结果, 时间等.

  • 登录的token分配以及管理:

如何分配和管理用户登录的token:

1.基于token auth的方式进行登录后认证权限, 便于web, app统一token管理.

2.不使用容器的session的机制, 而是sessionid自定义生成, 并通过redis共享session.

3.请求中cookie或header中带了token, 后台获取后跟redis中进行校验鉴权.

4.app(android, ios)中额外有刷新token接口, 其请求延长token的有效时间.

 

 

其他:

通常成熟的产品都具有web, app, h5等入口方式, 而在安全登录校验方面(异地检查要额外验证码,交易密码等)也要进行同步加入,比方说不能只在web端具有该功能,而app端没有实现.

交易系统就曾经被一黑客利用app端因新上线没有及时加上安全登录校验的时机,盗取了用户邮箱登录的方式进行获利,造成不好的影响.

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值