OWASP Top 10 入门:Web 网站最常见的漏洞与防御方向
做网站的人迟早会听到"OWASP Top 10"这个词。它是由开放 Web 应用安全项目(OWASP)每几年发布一次的"Web 应用十大最严重风险"榜单,被全球安全社区当成 Web 安全的"体检标准"。本文不用专业黑话,把榜单里最常见的几类漏洞讲清楚,并给出对应的防御方向。
一、OWASP Top 10 是什么
OWASP(Open Worldwide Application Security Project)是一个非营利组织,它定期收集全球范围内的真实攻击数据,发布"十大最严重 Web 应用风险"报告。这份榜单不是学术论文,而是"黑客最常用、危害最大"的实战清单。看懂它,等于知道"敌人最可能从哪里攻进来"。
当前 Top 10 完整清单(2021 版为主,2025 版为最新):
| 编号 | 漏洞类别 | 一句话解释 |
|---|---|---|
| A01 | 访问控制失效 | 权限没管好,低权限用户能碰高权限功能 |
| A02 | 加密失败 | 敏感数据明文存储或传输 |
| A03 | 注入 | 把用户输入当成代码执行 |
| A04 | 不安全设计 | 架构层面缺少安全考虑 |
| A05 | 安全配置错误 | 默认密码、多余端口没处理 |
| A06 | 易受攻击和过时组件 | 用了有已知漏洞的老版本库 |
| A07 | 身份识别和认证失效 | 登录验证有漏洞,账号可被撞库 |
| A08 | 软件和数据完整性失效 | 更新包、反序列化被篡改 |
| A09 | 安全日志和监控失效 | 被攻击了却没有日志可查 |
| A10 | 服务端请求伪造(SSRF) | 服务器被诱导去访问内网 |
二、注入:把用户输入当成代码
注入是最经典的 Web 漏洞。它发生在"程序把用户的输入直接拼进命令或查询"时。最典型的是 SQL 注入:一个登录框接收 ' OR '1'='1,如果程序把它直接拼进 SQL,就可能绕过验证拿到数据。
防御方向:参数化查询/预编译语句是第一道防线,其次是输入校验、最小权限数据库账号、WAF。详细做法见SQL 注入防御最佳实践。
三、XSS:在别人的浏览器里执行你的代码
跨站脚本(XSS)指攻击者把恶意脚本注入到网页里,当其他用户访问时脚本在他们的浏览器里执行,可能偷走 Cookie、篡改页面、钓鱼。
XSS 的本质是"把数据当代码渲染"。防御方向:输出编码(把 <、> 等字符转义)、使用自动转义的模板框架、设置 CSP(内容安全策略)与 HttpOnly Cookie。细节可看XSS 跨站脚本防御。
四、失效认证与敏感数据暴露
失效认证(A07):系统允许弱密码、不限制登录尝试次数、会话不过期,导致账号可被撞库、暴力破解。防御:强制强密码策略、登录限速、启用多因素认证(MFA),见双因素认证实现。
敏感数据暴露(A02):密码明文存储、信用卡号不加密、不用 HTTPS,导致数据库被拖走就等于数据全泄露。防御:密码用 bcrypt/argon2 哈希加盐存储、敏感字段加密、全程 HTTPS、最小化收集数据。HTTPS 相关内容见HTTPS 入门。
五、其他高发问题:配置错误与过时组件
很多攻击并不高明,只是捡软柿子捏:服务器还开着默认端口、管理后台还用默认密码(A05);框架版本停留在三年前、带着几十个已知漏洞(A06)。这两类"低级漏洞"在真实攻击中占比很高。
防御方向:关闭多余服务和端口、改默认口令、开启自动安全更新、定期做依赖扫描。整体加固清单可看网站安全加固指南,以及安全响应头配置。
六、漏洞速查表
| 漏洞 | 攻击效果 | 一句话防御 |
|---|---|---|
| SQL 注入 | 拖库、绕过登录 | 参数化查询 |
| XSS | 偷 Cookie、钓鱼 | 输出编码 + CSP |
| 失效认证 | 账号被撞库 | 强密码 + MFA + 限速 |
| 敏感数据暴露 | 数据全泄露 | 哈希存储 + HTTPS |
| 配置错误 | 后台被直连 | 关端口、改默认口令 |
| 过时组件 | 已知漏洞被利用 | 及时更新 + 扫描 |
| SSRF | 访问内网 | 校验请求目标地址 |
七、常见问题(FAQ)
Q1:小网站也需要担心这些吗? 需要。攻击者大量用自动化脚本扫描全网,小网站因为没有专职安全人员,往往更容易被攻破。
Q2:装了 WAF 是不是就安全了? WAF 能拦截一部分常见攻击,但不能替代代码层面的安全修复,两者是互补关系。WAF 入门见Web 应用防火墙指南。
Q3:我该从哪里开始加固? 按性价比排序:强制 HTTPS、参数化查询、密码哈希、登录限速、更新依赖、加安全头。做完这六件事,就能挡掉大多数自动攻击。
Q4:怎么知道网站有没有被攻击过? 开启访问与错误日志、异常登录告警,定期看日志。被攻击却无日志可查(A09)本身也是大风险。
八、小结
一句话总结:OWASP Top 10 是 Web 安全的"敌人地图",注入、XSS、失效认证、敏感数据暴露是重中之重,参数化查询、输出编码、HTTPS、强认证、及时更新是核心防线。 想系统学习安全,可收藏安全与 SSL 分类。