OWASP Top 10 是什么
OWASP Top 10 是 OWASP 组织发布的 Web 应用安全风险清单,2021 版列出 A01 到 A10 十类问题,按业内共识排序。它的定位是意识与沟通材料:让研发、测试与管理层对「最该防什么」有共同语言,而不是一份可直接打勾的测试清单。类别之间常有重叠,例如注入类里同时包含 SQL 注入与跨站脚本,具体条目要落到对应的技术文档里执行。
基本信息
| 维护方 | OWASP(开放式 Web 应用安全项目) |
|---|---|
| 当前常用版本 | 2021 版,编号 A01 至 A10 |
| 定位 | 风险意识与优先级参考,不是完整测试清单 |
| 配套文档 | ASVS 验证标准、WSTG 测试指南、速查表 Cheat Sheet |
| 更新节奏 | 约每数年更新一次,引用时应标注版本年份 |
| 使用建议 | 培训按类别讲案例,上线检查按类别对照自查 |
OWASP Top 10 2021
| 编号 | 类别 | 典型表现 |
|---|---|---|
| A01 | 失效的访问控制 | 越权读写他人数据、按 ID 直接遍历资源 |
| A02 | 加密机制失效 | 明文传输敏感数据、弱算法、密钥硬编码 |
| A03 | 注入(含 XSS、SQLi 等) | 拼接语句、未按上下文编码输出 |
| A04 | 不安全设计 | 缺少业务约束与限流、可被批量套利 |
| A05 | 安全配置错误 | 默认口令、开启调试、目录列表、多余端口 |
| A06 | 自带已知漏洞的组件 | 框架与依赖版本过旧,未跟踪公告 |
| A07 | 身份识别与认证失败 | 口令策略弱、会话固定、缺多因素 |
| A08 | 软件与数据完整性失效 | 更新未校验签名、不安全反序列化 |
| A09 | 安全日志与监控失效 | 无审计日志、告警无人响应 |
| A10 | 服务端请求伪造(SSRF) | 服务端按用户输入请求任意地址 |
典型使用场景
- 研发安全培训:按 A01 到 A10 组织课程,每类配本行业真实案例
- 需求与设计评审:用清单反问是否涉及该类风险,把约束写进设计稿
- 上线前自查:逐类对照检查项,把结论落成可核对的记录
- 渗透报告归类:把技术发现映射到 A0x,便于管理层理解与排期
- 供应商评估:要求对方说明各类风险的控制措施与证据
- 合规材料:作为安全开发流程的参考框架,与内部规范对齐
使用方式
使用方式
培训:按类别讲案例与编码规范,每类配 1 至 2 个真实缺陷
上线检查:逐类对照自查表,记录结论与责任人
渗透报告:把发现映射到 A0x 便于管理层阅读与排期
# 注意:Top 10 只是入口,具体整改要落到对应技术条目
# 例如 A03 要拆到 SQL 注入、XSS、命令注入等条目分别处理
# 排查深度不够时,用 ASVS 的验证条款补齐覆盖度引用时注明版本年份。2021 版把不安全设计单列并强化了组件与数据完整性类目,若内部规范还停留在 2017 版口径,评审时会出现分类对不上号的情况。
Top 10 不覆盖业务逻辑与供应链等全部风险面。涉及资金、权限、批量操作等场景,需要补充业务逻辑测试用例,不能只按清单打勾。
工程化落点
- 编码规范:把 A03 的注入类要求写成参数化与输出编码的硬性约定
- 安全需求评审:把 A01、A04 的权限与业务约束写进需求验收条件
- 依赖治理:对应 A06 建立组件清单与公告跟踪机制
- 上线检查表:把 A05 的默认口令、调试开关、目录列表列为发布门禁
- 运行期监控:对应 A09 补齐审计日志与关键操作告警