
一、先给一个不绕弯的定义
Web 应用防火墙(Web Application Firewall,简称 WAF),是部署在 Web 应用与客户端之间的一道安全防护层。它的核心工作只有一件事:把流向网站的 HTTP/HTTPS 请求逐个「读一遍」,识别出其中的恶意请求并拦下来。
打个比方:传统防火墙像小区大门,只看进出的人有没有门禁卡;而 WAF 更像小区里的保安,会检查每个人进门后的行为是否可疑。前者管「能不能进」,后者管「进来之后干不干坏事」。
二、WAF 工作在哪一层?为什么这个位置很关键
WAF 工作在 OSI 模型的应用层(第七层),这是它和传统防火墙最本质的区别。
| 对比维度 | 传统防火墙 | WAF |
|---|---|---|
| 工作层级 | 网络层 / 传输层(三、四层) | 应用层(七层) |
| 判断依据 | IP 地址、端口、协议类型 | HTTP 请求内容:URL、参数、Cookie、请求体 |
| 能否看懂攻击 | 不能,只知道「有连接」 | 能,可识别 SQL 注入、XSS 等具体攻击手法 |
| 典型作用 | 控制网络访问权限 | 拦截 Web 应用层攻击 |
正因为能「读懂内容」,WAF 才能区分这样一个请求到底是正常业务还是攻击。假设攻击者在商品详情页的 id 参数里拼接了一段 SQL 判断语句:
GET /product?id=1[注入载荷] HTTP/1.1
传统防火墙看到的只是「一个普通的 80 端口请求」,而 WAF 能识别出参数里被拼接的 SQL 注入载荷(典型特征是单引号配合逻辑判断符号),可以直接拦截。这类「参数携带 SQL 语法片段」的请求,在正常业务中几乎不会出现,因此识别准确率很高。
三、WAF 主要防什么?四类核心场景
1. 应用层漏洞攻击
包括 SQL 注入、跨站脚本(XSS)、命令执行、文件包含、反序列化等,这些都属于 OWASP Top 10 的范畴,也是 WAF 规则库最主要覆盖的对象。
2. CC 攻击与流量型攻击
攻击者用大量看似正常的请求(如高频刷新搜索页、遍历商品列表)耗尽服务器资源。WAF 通过频率统计、行为分析识别异常访问模式并限流拦截。
3. 恶意爬虫与数据抓取
内容站最头疼的问题之一。WAF 可基于 User-Agent、访问频率、行为轨迹等维度识别爬虫,并支持 Bot 管理做精细化分类处置。
4. 0day 漏洞的虚拟补丁
这是 WAF 一个极具价值的能力。当某个组件爆出 0day 漏洞、官方补丁还没发布时,WAF 可以先在流量层把攻击特征拦掉,相当于给漏洞打了一个「虚拟补丁」,为管理员争取修复时间。
四、接 WAF 之后,网站发生了什么变化
很多人以为接 WAF 很复杂,实际上标准流程只有三步:
- 添加域名——在 WAF 控制台添加要防护的域名;
- 修改解析——把域名的 DNS 解析指向 WAF 提供的 CNAME 地址;
- 验证生效——等待解析生效,流量开始经过 WAF 清洗。
整个过程中源站服务器不需要改动任何代码,业务中断时间通常在 DNS 生效范围内(视 TTL 而定)。同时由于流量改为经 WAF 回源,源站真实 IP 被隐藏,攻击者无法绕过 WAF 直连源站。
五、WAF 不是「万能钥匙」
需要明确的是:WAF 是防护体系中的重要一环,但不能替代其他安全措施。
- WAF 不能替代代码层面的漏洞修复——该打的补丁还是要打;
- WAF 不能替代DDoS 高防——大流量攻击需要专门的流量清洗能力;
- WAF 不能防内网横向渗透——它守的是外部流量入口。
正确的思路是把 WAF 放在「流量入口」这个位置上发挥最大价值,同时配合补丁管理、代码审计、终端防护形成纵深防御。
六、什么规模的网站需要上 WAF
很多站长的疑问是「我一个小站,有必要吗」。判断标准其实很简单:
- 只要你的网站有价值,就有被攻击的理由——哪怕只是流量、数据或服务器算力;
- 只要你的网站有交互功能(登录、评论、搜索、上传),就存在被注入和利用的攻击面;
- 只要能接受每天几块钱的成本,云 WAF 的投入产出比远高于被黑之后的恢复成本。
实践中被攻击最惨的往往不是大站(有专业团队),而是疏于防护的中小站点——它们更容易被自动化扫描器批量命中。
七、小结
WAF 的本质是在流量入口处做应用层安全过滤。它的价值体现在三点:防护应用层漏洞攻击、抵御 CC 与爬虫、隐藏源站 IP。理解了这个定位,后面的 FAQ 问题(如何配置、如何调优、怎么选型)就都有了统一的出发点。
