目录
[📋 OWASP Top 10 2021版核心内容](#📋 OWASP Top 10 2021版核心内容)
[🎯 OWASP Top 10的核心价值](#🎯 OWASP Top 10的核心价值)
[🛡️ 如何在实际开发中使用它?](#🛡️ 如何在实际开发中使用它?)
OWASP Top 10 是一个由开放式Web应用程序安全项目 发布的、最权威的全球性Web应用程序安全风险清单。它不是一份技术标准,而是一份意识文档和最佳实践指南 ,核心目标是:让开发人员、架构师、管理人员和整个组织了解最危险、最常见的Web应用安全风险,并提供防护措施。
简单来说,它就像是网络安全领域的"通缉令",告诉你当前最需要防范的前十大威胁是什么。
📋 OWASP Top 10 2021版核心内容
以下是2021年发布的最新版本(通常每3-4年更新一次)的十大风险概览:
| 排名 | 风险类别 | 核心问题简述 | 典型例子 |
|---|---|---|---|
| A01 | 失效的访问控制 | 系统未能对用户执行的操作进行正确授权,导致用户可以访问或操作本不该有权限的数据或功能。 | 通过修改URL参数(/user?id=123 -> /user?id=124)访问他人账户;越权访问管理后台。 |
| A02 | 加密机制失效 | 未正确使用或完全缺失加密措施,导致敏感数据(密码、银行卡号、医疗记录)暴露。 | 网站未使用HTTPS,数据明文传输;使用弱哈希算法(如MD5)存储密码。 |
| A03 | 注入 | 将不可信的数据作为命令或查询的一部分发送给解释器时,可能被恶意解析并执行。 | SQL注入 :' OR '1'='1 绕过登录;OS命令注入:在输入中拼接系统命令。 |
| A04 | 不安全的设计 | 安全缺陷源于架构或设计阶段,而非代码实现。缺乏安全的控制模式。 | 业务流程设计上允许无限次尝试密码,导致暴力破解;密码恢复流程逻辑有缺陷。 |
| A05 | 安全配置错误 | 应用程序、框架、服务器、平台等的不安全默认配置,或配置不当。 | 使用默认管理员账户/密码;开启不必要的服务端口;暴露详细的错误信息给用户。 |
| A06 | 易受攻击的组件 | 使用了含有已知漏洞的第三方组件(库、框架、软件模块)。 | 使用了存在Log4Shell漏洞的Apache Log4j版本;使用过期的、有漏洞的jQuery插件。 |
| A07 | 身份认证失效 | 与用户身份认证和会话管理相关的功能实现有缺陷,导致攻击者可以冒充合法用户。 | 登录后会话ID不变;密码复杂度无要求;登录失败提示过于详细(如"密码错误")。 |
| A08 | 软件和数据完整性故障 | 软件更新、关键数据、CI/CD管道在传输过程中被篡改,且未经验证。 | 从不可信的镜像源下载依赖;更新包未校验签名;客户端提交的数据(如商品价格)可被篡改。 |
| A09 | 安全日志与监控不足 | 未能有效记录、监控和响应安全事件,导致攻击持续进行而未被察觉。 | 登录失败无日志;异常流量无告警;日志不记录关键信息(如源IP)。 |
| A10 | 服务端请求伪造 | 诱导服务器向内部或外部的非预期地址发起恶意请求,攻击内网服务。 | 攻击者控制应用程序向内部元数据服务(如169.254.169.254)发起请求,获取云服务器密钥。 |
🎯 OWASP Top 10的核心价值
-
风险优先级排序:帮助组织将有限的安全资源投入到防范最可能、最危险的威胁上。
-
通用语言:为开发、测试、运维和安全团队提供了讨论安全的通用框架和术语。
-
教育和培训基础:是全球Web安全培训和认证(如OSCP、Security+)的必修内容。
-
行业标杆:是许多法规、审计(如PCI DSS支付卡行业标准)和安全评估的事实参考标准。
🛡️ 如何在实际开发中使用它?
对于开发团队,OWASP Top 10不应只是安全团队的"待办清单",而应融入安全开发生命周期:
-
需求与设计阶段:考虑A04(不安全的设计),建立威胁模型。
-
编码阶段:针对A01、A03、A07等,进行安全的代码实践和同行评审。
-
测试阶段:进行渗透测试和漏洞扫描,重点覆盖Top 10风险。
-
部署与运维阶段:检查A05(配置错误)、A06(组件漏洞)和A09(日志监控)。