WAF 是 Web Application Firewall(Web应用防火墙) 的缩写,是一种专门保护网站或 Web 服务的安全防护系统。它主要工作在应用层(HTTP/HTTPS),用来拦截和过滤恶意请求,防止攻击直接打到业务系统。
可以把 WAF 想象成:站在网站前面的"智能保安",专门检查每一个进来的请求是否合法。
WAF 重点防护的是常见的 Web 攻击,比如:
- SQL 注入攻击(SQL Injection)攻击者通过输入恶意 SQL 语句试图读取或篡改数据库数据
- 跨站脚本攻击(XSS) 在页面中注入恶意脚本,窃取用户信息
- 文件上传漏洞 上传恶意文件(比如 WebShell)
- 命令执行攻击 试图让服务器执行非法系统命令
- CC 攻击 / 恶意刷接口 高频请求拖垮服务器
WAF 通常部署在客户端和服务器之间:
用户 → WAF → Web服务器 → 数据库
它的核心逻辑包括:
规则匹配
通过预设规则判断请求是否恶意,比如:
- 是否包含 SQL 关键字(
SELECT,DROP) - 是否有异常参数格式
行为分析
识别异常行为,比如:
- 同一个 IP 短时间请求过多
- 非正常访问路径
风控策略
根据策略做出处理:
- 拦截请求 ❌
- 放行请求 ✅
- 验证(验证码、人机校验)
常见部署方式:
- 云 WAF(最常见)
- 例如:Cloudflare、阿里云
- 优点:开箱即用,维护成本低
- 硬件 WAF
- 专用设备部署在机房
- 安全性高,但成本较高
- 软件 WAF
- 部署在服务器上,比如:
- ModSecurity
- 灵活但需要自己维护
- 部署在服务器上,比如:
WAF vs 防火墙
| 类型 | 作用层 | 防护内容 |
|---|---|---|
| 传统防火墙 | 网络层(IP/端口) | IP、端口访问控制 |
| WAF | 应用层(HTTP) | Web攻击(SQL注入、XSS等) |
👉 传统防火墙管"谁能进来"
👉 WAF 管"进来的人干什么"
WAF 的价值
- 保护核心业务(登录、支付、订单接口)
- 减少安全漏洞被利用的风险
- 不改代码就能提升安全性(尤其适合老系统)