代理在提升效率的同时,也可能把不明显的安全风险快速带入代码。本节提供一份可执行的排查清单与协作原则,帮助在审查阶段识别常见高危问题;它是专业安全审计的前置补充,不替代正式渗透测试与安全评审。
一、注入类问题排查
| 类型 | 关注线索 | 基本防御方向 |
| 命令注入 | 外部输入拼进 shell/系统命令 | 避免拼接命令、使用参数化调用、最小命令集、白名单校验 |
| SQL 注入 | 字符串拼接查询、动态表名字段未校验 | 参数化查询、约束输入、最小数据库权限 |
| 路径遍历 | 用户输入直接拼文件路径 | 规范化并校验落在允许目录、拒绝越界路径 |
| 跨站/输出注入 | 不可信内容未转义直接渲染 | 按输出上下文编码转义、设置安全响应策略 |
二、凭据与敏感数据治理
- 密钥、令牌、连接串不写入源码、记忆文件、提示词与日志;优先由受保护的环境或密钥管理机制提供。
- 提交前排查新增变更中的硬编码秘密;发现疑似泄露应立即移出当前文件、轮换失效凭据,并按团队流程清理与上报,避免继续传播。
- 错误响应与日志中不回显密钥、内部路径、栈细节或用户隐私数据;对外信息保持最小化。
- 本地个人配置(如本机地址、测试账号)放在不入库的本地偏好文件,不进入团队共享规则。
三、授权、依赖与外部调用边界
- 鉴权与越权:确认每个敏感动作都做身份与权限校验;避免前端可见但后端不校验的"隐藏接口"。
- 最小权限:服务账号、代理工具白名单、外部 MCP/网络工具都只授予完成任务所需范围(呼应第 11 章权限治理)。
- 依赖风险:关注直接引入依赖的来源与已知问题;不随意安装来源不明组件;锁定可复现版本。
- 外部输入校验:所有跨边界输入做类型、长度、范围与格式校验;默认拒绝,而非默认放行。
- 不安全反序列化/随机数:不信任不可信对象反序列化;安全用途的随机值使用密码学安全随机源。
四、让代理参与安全排查的正确方式
- 用只读审查会话按上表逐项扫描变更范围,要求给出文件位置、风险理由与修复建议,而非泛泛声称"安全"。
- 证据不足时标注"待人工确认",不把猜测结论当作漏洞或误报;风险按严重度分级。
- 高危模块(认证、支付、权限、数据导出、外部集成)必须经过人工安全复核,代理结果作为输入。
- 把高频安全约定写入项目审查清单与只读审查子代理提示,使每次变更都经过一致检查。
能力边界提醒
本教程不针对特定框架给出固定安全配置键名,也不提供绕过、攻击或清除安全控制的方法;正式系统应结合官方安全文档、依赖漏洞通告与专业评审完成加固。
本节小结与下一节预告
本节给出注入、凭据、授权与依赖的排查清单。下一节把审查与自动化检查组织成质量门禁:测试、静态检查与合并前的分层把关。