tech-sensitive-data-masking-strategy.md 1.7 KB

敏感数据脱敏与上传安全策略

来源:变更 security-sensitive-data-hardening 时间:2026-06-27

问题描述

多个接口暴露密码哈希/盐、默认明文密码、AK/SK、PII;敏感配置键与 Redis 敏感键明文返回;上传接口允许脚本/网页文件。

解决方案

脱敏占位回写防覆盖(核心模式)

  • page/detail 返回敏感字段(configValue、accessKey/secretKey)显示 ******
  • 保存时若提交值等于脱敏占位,则保留原值不覆盖真实凭据。避免前端回显脱敏值后保存把真实凭据冲掉。

认证字段彻底排除

  • SysUser.password / salt@JsonIgnore
  • 列表对 phone/idCard/email 脱敏;编辑详情只清认证字段,不脱敏可编辑字段。

敏感配置键统一判断

  • 识别含 password / secret / token / key / credential / ak / sk 的键。
  • page/list/detail/configKey 接口拒绝返回明文。

缓存键保护

  • 定义敏感前缀(crypto:session:*Authorization:login:*satoken:*)。
  • 列表过滤、详情/删除/清理拒绝,仅超管可访问。

强制改密闭环

  • sys_user.force_password_change:新建/重置置 1,改密成功置 0。
  • ApiPermissionInterceptor 在权限判断前拦截,强制改密用户只放行 changePassword / userInfo / logout / 密钥交换。

上传安全

  • FileManager 统一校验扩展名黑名单(jsp/jspx/php/html/htm/js 等脚本与网页文件),阻断可执行/可渲染文件上传面。

相关文件

  • forge-starter-authApiPermissionInterceptor
  • forge-starter-fileFileManager
  • SysUser 实体、敏感配置键判断工具类、缓存键管理接口