一、背景
在生产环境中为了避免客户流失、隐私泄露,常常需要对数据在DB、日志、响应各个环境进行脱敏处理。
二、加密方法
常见的加密方法:
- 密码摘要 + 盐(不可逆)
- AES加密
- 数据脱敏,使用*替换
三、ID信息安全
像数据量比较小的场景,往往ID只是数据库自增或者ID服务自增,因为ID是连续性,那么攻击者可以使用ID穷举,直接将数据爬完。 安全保护可以不局限于:
- 数据权限
- 反爬
- 限流
- 风控黑名单
- ID不使用自增,使用类似于Snowflake,Id还是顺序的,保证DB顺序写入性能,同时增加穷举难度
- ID加密
四、ID加密实现
实现过程
- 自定义注解
@Encrypt
- 配置加密AES密匙
- 实现
PathVariableMethodArgumentResolver
,RequestParamMethodArgumentResolver
,RequestResponseBodyMethodProcessor
,ServletModelAttributeMethodProcessor
,JsonDeserializer
,JsonSerializer
,对@Encrypt
的参数进行加解密
可以根据需要设置加密方式(AES、XOR、自定义混淆算法),加解密开关,权限管理等等