2021 版十大类别详解
以下为 OWASP Top 10:2021 的完整列表,每个类别对应的 CWE 映射关系决定「一个漏洞属于哪个 A0X 类别」:
A01:2021 — 失效的访问控制(Broken Access Control)
从 2017 版的 A5 跃升至榜首。34 个 CWE 映射至此类别(比其他任何类别都多),包括:CWE-200(敏感信息暴露至非授权实体)、CWE-201(在发送的数据中插入敏感信息)、CWE-352(跨站请求伪造 CSRF)。
核心问题:应用验证了「用户是谁」(身份认证)但没有验证「用户可以做什么」(授权)。表现为越权访问(IDOR,Insecure Direct Object Reference)、路径遍历、CORS 配置不当、JWT 令牌校验不充分。OWASP 明确指出:「这个类别是 2021 版中数据量最庞大的类别」——反映出访问控制的普遍薄弱而非其他类别变好了。
A02:2021 — 密码学失败(Cryptographic Failures)
对应 2017 版的 A3「敏感数据暴露」,但聚焦于密码学具体失败模式。29 个 CWE 映射至此类别。典型场景:使用硬编码密钥或弱密钥(如 AES-ECB 而非 AES-GCM)、未使用 HTTPS 传输敏感数据、使用已被证明不安全的哈希算法(MD5、SHA-1)存储密码、不验证 TLS 证书或使用自签名证书。
A03:2021 — 注入(Injection)
注入从 2017 版的 A1 降至 A3,33 个 CWE 映射至此类别。包括但不限于:SQL 注入(CWE-89)、跨站脚本 XSS(CWE-79)、命令注入(CWE-78,如 OS 命令执行)、LDAP 注入(CWE-90)、表达式语言注入(如 SpEL/OGNL 注入)。XSS 被并入注入类别是 2021 版的重大结构性变化——2013 和 2017 版中 XSS 是独立类别(A7),2021 版将「解释器注入」(所有将不可信数据传递给解释器的场景)统一归类为一个注入家族。
A04:2021 — 不安全的设计(Insecure Design)