Skip to content

05 · 数据与隐私合规 ​

合规不是法务的独角戏,是数据分级 → 脱敏 → 加密存储 → 留存治理的技术链路。本篇讲工程上怎么落地:哪些是个人数据、什么时候脱敏、什么必须加密、留存多久。

速览卡 ​

项内容
一句话定位把隐私合规翻译成可执行的技术清单
核心内容数据分级、脱敏策略、加密存储、留存与删除、GDPR/个保法要点
读完能回答手机号脱敏和加密是一回事吗?用户要删数据怎么办?
相关板块S03 密码学 | DB10 数据迁移 | C16 服务端安全纵深

一、先给结论:合规是四条技术原则 ​

text
① 分级:先知道哪些是敏感数据
② 最小化:只收集和存必需的
③ 管控:展示脱敏 + 存储加密 + 权限收敛
④ 留痕:能查谁在什么时候访问过

一句话:别等法务来问,开发时就把"这条数据能不能展示、该存多久、谁有权看"写进接口契约。


二、个人数据分级 ​

级别例子处理要求
一般昵称、公开资料正常存储,注意展示
个人敏感手机号、身份证、住址、生物特征脱敏 + 加密 + 权限
高敏支付、健康、行踪、未成年人信息加密存储 + 严格审计 + 专项流程

分级是脱敏和加密的前提:不分级就谈不上"哪些字段要特殊处理"。


三、脱敏:展示层 vs 存储层 ​

场景做法例子
列表展示脱敏后返回138****1234
详情校验明文只用于必要操作验证码登录时才用完整手机号
日志/埋点一律不落明文日志里只留脱敏值或 ID
导出/备份视需要脱敏测试库用假数据

脱敏 ≠ 加密:脱敏是不可逆的展示处理,加密是可逆的存储保护。展示用脱敏,持久化用加密,两者都做。


四、加密存储:哪些必须加密、怎么加 ​

字段建议
密码慢哈希(bcrypt/argon2),永远不逆
手机号/身份证字段级加密,展示时脱敏
支付/健康等高敏字段级加密 + 访问审计
整个库落盘加密(静态加密)兜底,但挡不住应用层泄露

分层思维:数据库静态加密(TDE)解决"磁盘被偷",字段级加密解决"查询结果泄露"。两者不是替代关系。


五、合规要点:把"权利"翻译成接口 ​

要求技术落地
知情同意收集前明示用途,可配置撤回
目的限制只按声明用途处理,禁止挪作他用
数据最小化字段只存必要的,能省则省
留存期限每类数据定 TTL,到期删除/匿名化
删除权提供"删除我的数据"入口,级联清理
可携带性能导出用户自己的数据(GDPR 重点)

六、GDPR 与个保法:最小可用的对齐 ​

细节以当地法规为准,本篇给技术侧需要知道的三件事:

  1. 删除权:用户要求删除,相关副本(备份、日志)也要能清理或匿名化。
  2. 跨境传输:数据出境需要合法依据,别把国外用户数据随意放国内存储。
  3. 事件通知:泄露要在期限内上报,所以日志要能定位"哪些数据被波及"。

七、自检清单 ​

  • [ ] 每个敏感字段都标了级别,知道谁有权读
  • [ ] 列表/详情/日志/导出四个场景的脱敏策略都定过
  • [ ] 密码用慢哈希,高敏字段做了字段级加密
  • [ ] 每类数据有留存期限,删除功能真的删(含副本)
  • [ ] 有访问审计,能回答"谁看过这条数据"

八、常见误区 ​

误区事实
"脱敏就是加密"脱敏不可逆用于展示,加密可逆用于存储
"库是加密的所以安全"静态加密挡不住应用层越权与日志泄露
"用户删了缓存里还有没事"副本/备份/日志都可能违反删除权
"合规是上线后的事"接口设计时定级最便宜,事后返工成本高

九、动手练习 ​

练习 A:给接口做分级 ​

列出你最近的三个接口,给每个字段标敏感级别,找出"本该脱敏却明文返回"的字段。

练习 B:设计删除链路 ​

给一个带手机号的用户模块设计"删除我的数据",覆盖主表、日志、备份、缓存四层。

练习 C:日志脱敏 ​

给日志框架加一个脱敏过滤器,验证手机号/身份证不会出现在日志里。


相关文档 ​

本区 ​

其他域 ​