安全需求怎样写清楚
安全需求要明确:
- 保护什么业务或数据。
- 谁在什么条件下可以操作。
- 条件不满足时,系统怎样处理。
- 用什么结果验证处理正确。
- 谁负责,验证证据保存在哪里。
示例:「普通用户只能查看本人订单。访问他人订单应被拒绝,访问本人订单应正常成功,并保留对应的请求和响应记录。」
✗「系统应当安全可靠」「尽量减少安全问题」等表述,缺少具体检查条件和验收标准。
以原始清单的十个主题为节点,逐节还原其内部层级,并单独标出主题之间的判断关系
安全需求要明确:
示例:「普通用户只能查看本人订单。访问他人订单应被拒绝,访问本人订单应正常成功,并保留对应的请求和响应记录。」
✗「系统应当安全可靠」「尽量减少安全问题」等表述,缺少具体检查条件和验收标准。
JWT 是一种令牌格式,本课程用它承载认证信息。BOLA 指对象级授权缺失,例如用户越权读取他人订单。SAST 指静态应用安全测试,主要分析代码,不能替代业务场景的运行验证。保持同一个用户身份,比较以下结果:
★ 后两项应成对保留。只有拒绝结果,不能证明正常业务仍然可用。
记录还应说明用户、订单、请求路径、环境、版本和实际响应,不能只保存几个状态码。
状态码要结合请求条件和业务结果判断。
200 请求得到成功响应,但不自动表示安全控制正确。他人订单被错误返回,也可能是 200。201 通常表示创建了新资源,课堂中用于首次创建订单。401 身份凭据未通过检查,不能直接当成对象授权拒绝的证据。403 请求被拒绝,需要结合身份、对象和拒绝原因解释。409 课堂中用于重复事件或幂等内容冲突,需要继续核对业务是否发生重复更新。格式错误的 Token 返回 401,且服务没有崩溃,只能说明这类异常认证输入被受控拒绝,不能证明全部 JWT 风险已经消除。
回调防重复关注同一支付事件,创建订单幂等关注同一业务请求;两者都要避免重复副作用,但标识和处理协议不一定相同。
课堂回调场景可用 409 表示重复事件;真实支付协议也可能要求重复通知返回成功确认。不能死记「重复请求必须返回 409」,关键是按约定响应且不再更新业务。
掌握三种情况:
关键证据包括订单是否相同、是否识别为重放,以及库存、金额等业务副作用是否只发生一次。
读输出时:id 是业务对象标识;replayed=true 表示系统将本次识别为重放。仍要核对是否返回同一对象,以及订单数量等副作用。没有提供库存或记账结果时,应写「未提供,待验证」。
CORS 管的是浏览器能否让网页读取跨源响应。需要分清:
ACAO 是 Access-Control-Allow-Origin 响应头,表示允许哪个网页来源跨源读取。Gateway 配置文件写好只说明形成配置候选;还要核对真实产品版本、加载情况和目标环境中的异常与正常结果。课程 Node 服务的测试结果不能直接证明 Gateway 或 Redis 配置生效。
判断顺序:先核实身份 → 再检查对象权限 → 最后根据角色和用途决定字段显示范围。
需要掌握:
接口显示星号,不证明数据库已经加密,也不证明数据已经匿名化。
一份日志里搜不到完整手机号,只说明当前样本和检索条件下未发现,不能据此宣布整个项目的数据安全达标。
★ 应保留失败输出,不能只留下成功截图。
课程结果不能直接写成客户生产环境已经验证。
扫描没有报告问题,不等于问题不存在。High 为零,也不能单独作为上线依据。
扫描未发现对象越权,不能抵消同范围内实际读取到他人订单的结果。修复后的成功验证,也不能成为删除原失败证据的理由。
个人修改后得到 1/1 PASS,在没有编译、业务回归和真实复扫时,应写:
「课程定向静态修复检查通过,待编译、回归与同版本真实复扫。」
不能直接写「漏洞已关闭」或「已在生产生效」。
可检查的条件要包含:
「后续加强监控」「持续关注」「尽快修复」都不够具体。
★ 回退目标也必须经过验证,不能退回仍有原漏洞的版本。没有安全可用的版本时,应提出暂停或隔离受影响功能等方案,并由有权责任方确认。
403 要结合身份与对象才构成拒绝证据;401 是认证未通过,不能当对象授权拒绝的证据。
409 在课堂表示重复事件,真实协议可能要求重复通知返回成功 —— 判据是业务有没有二次更新,不是状态码本身。
回答案例题时,检查自己是否写清:有什么风险、谁负责控制、异常怎样处理、正常业务是否可用、证据证明到哪里、还缺什么、下一步怎样处理。
写清三件事,不要只答「对」或「错」。
判断 + 准确表述 + 一条证据或边界把「观察到的」与「能推出的」严格分开。
观察到什么 + 能证明什么 + 不能证明什么按固定顺序分条作答,使用题干事实,不必写成长篇文章。
风险 → 控制 → 异常与正常验证 → 证据缺口 → 发布条件 → 责任与回退题目没有提供的版本、阈值、审批人或生产结果,应写「待确认」或「未提供」,不要自行编造。
★ 本图谱只使用原清单的一套编号:一~十 为十个主题;卡片底部的「指向 / 互指」与下方「主题间判断关系」是连线,不是新主题
★ 每个主题内的层级按原清单还原:主题 → 小标题 → 条目 → 说明;红色为易错与禁止表述,绿色为必须成对或必须保留项,蓝色为原文示例,灰色为补充说明