第11章学习笔记:安全、权限与数据治理
课程笔记把身份、授权、注入防护、加密、审计、隐私和生命周期落实为可测试控制。
关联:章节 第11章 安全、权限与数据治理
第11章笔记:安全、权限与数据治理
本章不是七个并列名词
把身份、授权、注入防护、加密、审计、隐私和生命周期落实为可测试控制。 学习顺序从《威胁建模与最小攻击面》开始,到《隐私、保留与安全删除》闭合。每一节都要留下下一节能直接使用的对象:模式、关系、查询结果、页、计划、事务状态、日志记录或部署证据。若你只能逐条背定义,却说不清前一节输出怎样成为后一节输入,这一章还没有真正连起来。
七节依赖与例题
1. 威胁建模与最小攻击面
要解决的问题: 安全从资产、主体、信任边界、攻击路径和后果开始;默认暴露端口再补规则不是设计。
跟着做: 画出 Web、应用、数据库与备份之间的数据流,识别公网入口、管理员路径和第三方同步,再逐个设置控制。
验收规则: 风险可近似评估为可能性×影响;高价值资产和跨信任边界流优先处理。
2. 身份认证、授权与最小权限
要解决的问题: 认证确认是谁,授权决定能做什么;应用账号、迁移账号、分析账号和运维账号应分离并定期复核。
跟着做: 报表服务只需读脱敏视图,不应拥有 DROP TABLE;迁移任务临时提升权限并在结束后撤销。
验收规则: 权限授予到完成任务所需的最小对象、操作和时限,拒绝长期共享超级账号。
3. SQL 注入与参数化
要解决的问题: 注入来自把不可信输入拼进 SQL 结构;参数化把数据与语法分离,但表名、排序方向等结构位仍需白名单。
跟着做: 用户名 x' OR 1=1 -- 若被拼接会改变 WHERE;使用占位符绑定后只作为一个字符串值。
验收规则: 值用参数绑定,结构标识符用有限映射,数据库账号再以最小权限限制爆炸半径。
4. 行列权限、视图与脱敏
要解决的问题: 权限可落到模式、表、列、行和视图;动态脱敏改善展示但不等于底层加密或访问隔离。
跟着做: 客服仅通过视图看到手机号后四位,租户条件由行级策略强制,而不是相信前端总会传 tenant_id。
验收规则: 安全边界应在服务端和数据库层可独立验证,拒绝依赖隐藏按钮。
5. 传输加密、静态加密与密钥
要解决的问题: TLS 保护传输,磁盘或备份加密保护静态介质;密钥若与密文同盘且同权限,保护效果有限。
跟着做: 数据库磁盘加密后,应用仍可读明文,因此还需授权与审计;备份密钥应独立托管并测试恢复获取。
验收规则: 密钥生命周期包括生成、分发、轮换、吊销、备份和审计,不能只写‘AES 加密’。
6. 审计、监控与不可抵赖证据
要解决的问题: 审计应记录谁在何时从何处对何对象做了什么及结果,同时控制敏感值、完整性和保留周期。
跟着做: 批量导出客户数据触发告警,日志记录操作者、查询指纹、行数和工单号,但不重复保存完整身份证号。
验收规则: 审计日志要防篡改、时间同步、可检索并定期演练告警响应。
7. 隐私、保留与安全删除
要解决的问题: 数据治理要说明收集目的、合法依据、最小化、保留期、访问更正与删除;副本、缓存和备份都在生命周期内。
跟着做: 注销账号先删除在线标识并传播删除事件,备份按到期轮换;法律要求保留的交易记录应隔离并限制用途。
验收规则: 删除承诺必须覆盖主库、副本、缓存、索引、导出和备份,说明不可即时删除的边界。
章内共同推理方法
先写“一行或一个状态代表什么”,再写它必须满足的键、约束、顺序或故障假设。遇到 SQL,先定结果粒度和重复/NULL 语义,再编码;遇到存储与优化,先估算页数、基数和 I/O,再看真实执行计划;遇到事务与分布式,先画时间线和允许历史,再讨论隔离级别、日志或共识。任何公式都要带单位、数据分布和适用边界。
可复现练习
从本章七个例题中任选两个,用 SQLite 或课程给定模型从空环境重做。保存建表/输入、执行步骤、实际输出和断言;随后故意加入一个重复键、NULL、并发交错、崩溃点、倾斜分布或网络分区,记录第一个被破坏的不变量。只截成功界面、只贴 SQL 或只报告耗时不算完成。
闭卷验收
用十分钟画出本章七节箭头图;任选一条箭头解释传递的具体字段、状态或证据。再为《隐私、保留与安全删除》写一个最小失败案例,并追溯它需要《威胁建模与最小攻击面》中的哪条定义才能修复。最后列出三道题:一道唯一答案判断、一道多条件选择、一道必须计算或写 SQL/状态轨迹的问题,且每题都写清为什么其他答案错。