权限管理
#
- 权限管理系统属于基础服务,负责用户身份的认证和授权;
- 用户信息管理系统属于业务系统,管理用户在参与业务过程中的身份信息;
权限分配方案
#
- ACL(Access Control List):访问控制列表,以Row为维度进行权限控制。在存储数据的同时保存据的读写权限。
- 存储示例:
write:1,2,3;read:*
,表示所有用户有读权限,但只有ID=1,2,3的用户同时拥有读写权限。
- RBAC(Role-Based Access Control:):角色访问控制,基于角色分配权限,一个用户的权限等于其拥有的所有角色的权限集合。权限可以是模块、功能、菜单、接口、按钮等不同粒度。
安全性
#
密码脱敏
#
- 对称加密:对称加密(AES、DES、3DES等)可以解密,安全性不高。
- 单向加密/摘要算法:Md5、Sha1等算法无法防止彩虹表。
- PBKDF2+Sha256:推荐。PBKDF2为密钥生成算法,加密过程为执行n次哈希算法(例如:Sha256)并加上随机盐生成密码。
- Bcrypt:推荐。每次都随机生成hash和盐后保存在密码中。验证密码时,使用原密码和保存在密码中的盐计算后再和hash进行比较。虽然无法防止彩虹表,但由于加密速度可以维持在一个固定范围内,无法加速,所以彩虹表的生成成本较高。