ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AI 软件开发实战教程(十六):删除账号不是删除一行数据

AI 软件开发实战教程(十六):删除账号不是删除一行数据 系列第 16 篇把立即停用、24 小时敏感数据擦除、90 天业务匿名化和 180 天审计删除变成可重复验证的时间契约。一个用户的微信号不只存在个人资料里。发生联系方式交换后双方当时的微信号还会以加密快照存在交换记录中。直接删除用户行会被大量业务外键阻止也会破坏已经发生的候选和配对事实。K8 把“删除账号”拆成不同时间层次。提交后立即发生什么删除申请在一个事务中写入最小审计 → 账号状态改为删除中 → is_active 设为 false → 记录申请时间 → 退出当前会话从这一刻起用户不能登录、发布或发起新的联系方式披露。即使 24 小时擦除任务尚未运行权限已经停止。审计只保存动作、内部对象类型与编号、操作者和时间没有自由 JSON payload。结构上不给调用者顺手塞入微信号、喵码或完整请求体的入口。24 小时要找到敏感值的所有副本保留任务会清空个人资料中的加密微信号加密喵码和验证状态用户作为司机时的微信号交换快照用户作为乘客时的微信号交换快照。测试先完成一次真实交换再删除司机账号。24 小时后断言司机资料和司机快照为空同时乘客快照仍然存在。这种定向擦除很重要。把整条交换记录删除会连带破坏另一位仍在使用产品的成员数据什么都不处理又违反已经承诺的敏感数据期限。擦除后的历史页面不会尝试解密空密文而是显示“该用户联系方式已删除”。90 天保留业务关系但移除身份候选、配对和出行记录可能仍用于受控试用统计、争议排查和产品分析。首版采用 90 天匿名化登录账号 → deleted-内部编号-不可读后缀 邮箱和姓名 → 空 密码 → 不可用 业务外键 → 保留到匿名主体这样数据库关系仍然完整但不能通过原登录账号继续追踪本人。180 天后最小安全审计也会删除。任务使用时间条件且可以重复运行多次执行不会重新生成已经擦除的数据。页面必须在删除前讲清后果设置页明确展示三个期限。用户确认后看到不包含社区资料的通用页面并已经退出登录。移动 Chromium 旅程执行注册、设置资料、退出、重新登录、提交删除、看到处理说明再访问大厅被重定向到登录页。这验证的不只是服务函数还包括会话和页面路径。管理员也不应该默认看见秘密社区管理员可以维护邀请码摘要、地点与别名、路线兼容版本、账户状态并使用 Django 的密码重置能力。普通 Admin 不注册私密资料、联系方式交换快照和审计记录。管理权限不能成为绕过产品隐私边界的万能入口。本节点结果116 个非浏览器测试通过1 个 PostgreSQL 专属测试跳过分支覆盖率 87.84%静态、类型、迁移和 Django 检查通过4 条 Chromium 旅程通过立即停用、24 小时擦除、90 天匿名化和 180 天审计删除都有冻结时钟证据真实备份轮换和外部隐私法律审查尚未完成不能宣称完整合规结果只形成本地提交不推送。下一篇进入 K9把此前每个节点的局部浏览器测试合并成完整移动验收检查键盘、缩放、横屏、减少动态效果、敏感信息和 Gate B 微信真机准备材料。关键代码与操作下面的简化测试把时间推进到 24 小时分别检查被删除用户和另一位参与者的快照deftest_retention_wipes_only_deleted_users_sensitive_values(driver,passenger,exchange):requested_attimezone.now()request_account_deletion(user_iddriver.pk,nowrequested_at)run_retention(nowrequested_attimedelta(hours24))driver.private_profile.refresh_from_db()exchange.refresh_from_db()assertdriver.private_profile.encrypted_wechat_idassertexchange.encrypted_driver_wechat_idassertexchange.encrypted_passenger_wechat_id!验证命令make bugfix TESTtests/accounts/test_deletion.py::test_retention_wipes_profile_and_exchange_snapshot_after_24_hours断言另一位成员的快照仍然存在可以防止清理任务误删整条共享业务记录。本篇验证摘要删除申请提交后立即停用账号和现有会话先停止新的访问与披露24 小时后定向擦除个人资料和交换快照中的敏感值90 天后匿名化身份但保留必要业务关系180 天后删除最小审计保留任务按时间条件幂等执行不会重新生成已经擦除的数据自动测试验证了时间边界真实备份轮换和外部隐私法律审查仍未完成。附录相关工具与仓库gstack仓库garrytan/gstack地址https://github.com/garrytan/gstackdev-harness仓库Dev-Wiki/dev-harness地址https://github.com/Dev-Wiki/dev-harnessUI UX Pro Max Skill仓库nextlevelbuilder/ui-ux-pro-max-skill地址https://github.com/nextlevelbuilder/ui-ux-pro-max-skill
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进