INFO5995-A2-Task5-修复建议与缓解措施模板
INFO5995 Task 5 — 修复建议与缓解措施模板
修复建议评分标准
根据 Rubric,修复建议占 Part A 2 分,但 Task 5 的 presentation 中也需要展示 mitigation:
| 分数 | 标准 |
|---|---|
| 2 分 | 具体、技术上合理,解决根本原因,解释风险降低原因 |
| 1.5 分 | 大部分正确,有小缺陷 |
| 0.5-1 分 | 模糊或部分修复 |
| 0 分 | 无效或缺失 |
常见漏洞类型修复模板
1. 认证与会话
弱密码策略 / 暴力破解
修复: - 实施强密码策略(最小长度 12,复杂度要求) - 实施速率限制(5 次失败后锁定 15 分钟) - 实施 CAPTCHA 于重复失败尝试后 - 启用 MFA(TOTP / WebAuthn)
论证: > 速率限制将在线暴力破解从 O(n) 降低到 O(1),CAPTCHA 阻止自动化工具,MFA 即使密码泄露也保护账户。
JWT 弱点
修复: - 拒绝 "alg": "none" 的 JWT - 使用 RS256 而非 HS256(非对称签名) - 实施严格的过期策略(access token ≤ 15 分钟) - 密钥轮换机制
论证: > 强算法和短过期窗口将密钥泄露的影响时间从永久降低到分钟级。
2. 输入验证与注入
XSS(跨站脚本)
修复: - 输出编码(HTML entity encoding) - 实施 CSP(Content Security Policy) - 使用现代框架的自动转义(React/Vue/Angular 默认) - 输入验证(白名单而非黑名单)
论证: > CSP 即使存在注入也能阻止脚本执行,输出编码消除 DOM 中的可执行上下文。
SQL Injection
修复: - 参数化查询 / Prepared Statements(唯一推荐) - ORM 框架(默认参数化) - 最小权限数据库账户 - WAF 作为辅助层(非主要防御)
论证: > 参数化查询将代码与数据分离,从架构层面消除注入可能,是最根本的修复。
3. 访问控制
IDOR(不安全的直接对象引用)
修复: - 实施基于策略的访问控制(PBAC) - 使用间接引用映射(UUID 替代自增 ID) - 每个敏感操作验证资源所有权 - 服务端验证,不信任客户端输入
论证: > 服务端所有权验证确保即使攻击者猜到/构造 URL,无权限时请求会被拒绝。
4. 安全配置
敏感信息泄露(.git、.env)
修复: - Web 服务器配置拒绝访问隐藏文件/目录 - 部署前清理敏感文件 - 使用 secrets 管理服务(AWS Secrets Manager / HashiCorp Vault) - 实施安全扫描于 CI/CD 管道
论证: > 深度防御:配置层阻止访问 + 部署层消除文件 + 管理层替换硬编码凭证。
不安全的 CORS
修复: - 白名单具体的 Origin,不使用 "*" - 禁止 credentials 时配合通配符 - 实施 Origin 验证逻辑 - Vary: Origin 响应头
论证: > 精确的 Origin 白名单将跨域访问从"任意网站"限制到"信任域名"。
缓解措施优先级框架
优先级 1: 消除根本原因(Architecture/Design) |
论证有效性模板
## 修复建议有效性论证 |
示例:完整修复论证
漏洞: Reflected XSS in search parameter
修复: 1. 搜索参数输出前进行 HTML entity 编码(&
→ &, < → <) 2. 实施 CSP:
default-src 'self'; script-src 'none' 3.
框架层启用自动转义
论证: > 编码确保用户输入在浏览器中始终以纯文本渲染,永远不会进入 JavaScript 执行上下文。CSP 作为纵深防御层,即使编码被绕过也能阻止脚本执行。双层防御将 XSS 风险从"可利用"降低到"理论上可能但极难利用"。