← 返回博客
研究 2025年2月24日 25分钟阅读

OWASP前十名2025:Web应用安全风险完整指南

OWASP前十名是最广泛认可的Web应用安全风险标准。无论您是开发人员、安全工程师还是业务领导者——本指南用真实示例、检测技术和修复策略解释每个类别。

ℹ️ 什么是OWASP前十名?

定期更新的意识文档,对Web应用程序最关键的安全风险进行排名。基于来自数百个组织的数据分析、社区调查和真实违规数据。被PCI DSS、DORA、NIS2和许多行业标准引用。


A01 失效的访问控制

#1最常见的漏洞——在94%的测试应用中发现。

⚠️ 真实示例

  • IDOR:/api/users/123/profile更改为/api/users/124/profile
  • 权限提升:普通用户访问/admin/dashboard
  • 缺少功能级访问控制:API检查身份验证但不检查授权
  • CORS配置错误:允许恶意站点发出经过身份验证的请求

✅ 修复方法

  • 在服务器端实施访问控制——永远不要依赖客户端
  • 默认拒绝——需要显式授权
  • 实施适当的RBAC或ABAC
  • 记录并警报访问控制失败
  • 限制API访问速率

A02 加密失败

以前称为"敏感数据暴露"——重命名以关注根本原因。

⚠️ 常见错误

  • 登录页面通过纯HTTP传输凭据
  • 支持TLS 1.0/1.1或弱密码套件
  • 使用MD5或SHA-1存储密码,而不是bcrypt/Argon2
  • 在源代码中硬编码加密密钥
  • 数据库备份没有加密

✅ 修复方法

在所有地方强制使用HTTPS,并启用HSTS。使用AES-256、bcrypt/Argon2、SHA-256+。永远不要硬编码秘密——使用Vault或AWS Secrets Manager。加密静态数据。禁用TLS 1.0/1.1。

A03 注入

经典的Web漏洞——二十年后仍在前三名。

注入类型

  • SQL注入:' OR 1=1 --以及更复杂的攻击
  • NoSQL注入:MongoDB/CouchDB的JSON操纵
  • 命令注入:通过应用输入执行操作系统命令
  • XSS:注入JavaScript——反射型、存储型、基于DOM
  • 模板注入(SSTI):代码注入服务器端模板引擎
  • 头部注入:操纵HTTP头

✅ 预防

对所有数据库交互使用参数化查询。使用白名单进行输入验证。根据上下文进行输出编码。内容安全策略头。最小权限数据库帐户。一致使用ORM。

A04 不安全设计

新类别——设计级缺陷,而非实现错误。

⚠️ 示例

  • 密码重置流程允许无限次尝试(无速率限制)
  • 业务规则的客户端强制执行(JS中的价格验证)
  • 单个API密钥授予对所有资源的读写访问权限

修复:将威胁建模(STRIDE、PASTA)集成到设计阶段。使用安全设计模式。在用例旁边编写滥用案例。

A05 安全配置错误

在90%的测试应用中发现。

⚠️ 常见配置错误

  • 数据库和管理面板上的默认管理员密码
  • 启用目录列表、调试端点、详细错误消息
  • 缺少安全头(CSP、X-Frame-Options、X-Content-Type-Options)
  • 可公开访问的S3存储桶或Azure blob
  • 启用不必要的HTTP方法(PUT、DELETE、TRACE)

✅ 预防

可重复的加固过程。删除所有不必要的功能。实施所有安全头。使用IaC自动化配置管理。定期配置审计。对云使用CSPM。

A06 易受攻击和过时的组件

528
平均组件/应用
84%
具有已知漏洞的代码库
48%
高风险漏洞
252天
平均修复时间

⚠️ 著名示例

  • Log4Shell (CVE-2021-44228):影响数百万Java应用的关键RCE
  • Spring4Shell (CVE-2022-22965):Spring Framework中的RCE
  • jQuery XSS:许多应用仍在使用易受攻击的jQuery版本

修复:维护组件清单(SBOM)。持续监控CVE数据库。删除未使用的依赖项。使用Dependabot/Renovate自动化更新。

A07 身份识别和身份验证失败

⚠️ 常见失败

  • 凭据填充:使用被盗密码的自动化攻击
  • 弱密码策略(允许"password123")
  • 会话固定和缺少会话失效
  • URL中暴露的会话令牌
  • 关键功能缺少MFA

✅ 预防

实施MFA。使用违规数据库检查强制执行强密码。身份验证端点的速率限制。安全会话管理(随机ID、HTTPOnly/Secure标志)。在注销/密码更改时使会话失效。

A08 软件和数据完整性失败

⚠️ 真实攻击

  • SolarWinds (2020):合法软件更新中的恶意代码——影响18,000个组织
  • 不安全的反序列化:通过不受信任的数据执行任意代码
  • CI/CD管道妥协:Codecov、ua-parser-js事件
  • 缺少SRI:从CDN加载JS时没有完整性哈希

修复:对所有软件/数据进行数字签名。对外部资源使用子资源完整性(SRI)。使用访问控制和签名保护CI/CD。避免不安全的反序列化——使用JSON。

A09 安全日志记录和监控失败

ℹ️ 盲目的代价

识别违规的平均时间:204天(IBM 2024)。没有足够的日志记录,攻击者可以建立持久性、渗出数据并扩大其立足点——所有这些都不会触发警报。

修复:记录所有身份验证事件、访问控制失败和输入验证失败。包括上下文(时间戳、用户、IP、操作)。在防篡改SIEM中集中日志。实施自动警报。定期测试检测能力。

A10 服务器端请求伪造(SSRF)

新类别——由于云原生架构中日益普遍而添加。

⚠️ 为什么SSRF危险

  • Capital One违规(2019):SSRF → AWS元数据 → 超过1亿客户记录暴露
  • 云元数据窃取:访问http://169.254.169.254/获取IAM凭据
  • 内部服务访问:到达防火墙后面的API、数据库、管理面板

✅ 预防

在服务器端验证所有用户提供的URL。对允许的域使用白名单。阻止私有IP范围(10.x、172.16.x、169.254.x、127.x)。禁用不必要的URL方案(file://、gopher://)。在AWS上使用IMDSv2。分段URL获取服务。


KENSAI如何扫描OWASP前十名

OWASP类别KENSAI覆盖
A01 失效的访问控制IDOR测试、授权绕过、CORS检查
A02 加密失败TLS分析、头检查、加密验证
A03 注入SQL、XSS、命令注入、SSTI、头注入
A04 不安全设计速率限制、可预测资源、逻辑测试
A05 安全配置错误头、默认值、信息披露、HTTP方法
A06 易受攻击的组件技术指纹识别、332K+ CVE数据库
A07 身份验证失败默认凭据、会话测试、cookie分析
A08 完整性失败SRI检查、反序列化测试
A09 日志记录失败安全头分析、错误处理审查
A10 SSRF内部端点注入、云元数据测试
332K+
跟踪的CVE
10/10
OWASP覆盖
AI
驱动的准确性
€990
起始价格/月

针对OWASP前十名测试您的应用

免费扫描——无承诺,无需信用卡。AI驱动的DAST,具有符合合规性的报告。

开始免费扫描 →

常见问题

最常见的OWASP漏洞是什么?

失效的访问控制(A01)——在94%的测试应用中发现。它从第5位上升到第1位,反映了在强制执行授权方面的广泛失败,特别是在API和SPA中。

OWASP前十名合规是强制性的吗?

OWASP前十名本身是自愿的。然而,它被PCI DSS(要求解决OWASP前十名)、NIS2(期望系统的漏洞管理)、DORA(引用行业标准测试)和许多供应商评估引用。实际上,它实际上是强制性的。

自动化工具可以检测所有OWASP前十名吗?

自动化DAST工具有效检测大多数类别——特别是注入(A03)、加密失败(A02)、配置错误(A05)和易受攻击的组件(A06)。某些类别如不安全设计(A04)和日志记录失败(A09)通常需要手动评估。使用自动化扫描获取广度+手动测试获取深度。

OWASP前十名多久更新一次?

每3-4年。主要版本:2013、2017、2021。每次更新都反映威胁格局的变化——2021年更新引入了不安全设计(A04)和SSRF(A10),同时重组了其他类别。

安全不是可选的。

🗡️ KENSAI团队

🛡️ Protect Your Business

Get a free security scan of your website in 60 seconds

Free Security Scan →
📚 More Articles 🏠 Home