网站半夜被人扫了一轮,第二天日志里全是 /admin 和带单引号的 URL 参数,服务器没被打挂,数据库却差点被拖走。这种事传统防火墙管不了,它只看 IP 和端口,看不懂 HTTP 里的攻击载荷,该轮到 WAF 防火墙上场了。WAF 全称 Web Application Firewall,中文叫 Web 应用防火墙。
它拦的是哪几类东西
- SQL 注入:参数里夹带单引号、union select 这类数据库语句
- XSS:评论框、URL 里塞脚本,骗其他访问者的浏览器执行
- Webshell 上传:把一句话木马伪装成图片传上来
- CC 攻击:海量请求刷瘫某个页面,按频率和特征限流
- 异常爬虫和撞库:识别可疑 UA 和高频登录尝试
和传统防火墙怎么分工
网络防火墙管门牌号,决定哪些 IP 和端口能进出;WAF 管包裹内容,拆开 HTTP 请求逐条检查。两个是上下层关系,不是二选一。等保测评里提到应用防护,一般就是要求部署这类设备或服务。
接入方式常见的三种
云 WAF 最省事,把域名解析改到服务商给的 CNAME,流量先过清洗中心再到你服务器;软件型可以装 ModSecurity 这类模块挂在 Nginx 前面;还有硬件盒子,买回来串在机房链路里。中小网站多数从云 WAF 起步,按月付费,不用动自己的代码。接入后记得把源站真实 IP 藏好,服务器只放行来自 WAF 的回源请求,不然攻击者绕过 WAF 直接打源站,等于白装。
误报是绕不开的日常
规则严格了,正常的富文本提交、带特殊字符的搜索词也会被拦,用户看到的是 403 页面。处理办法是翻拦截日志,把确认无害的请求加白名单,再观察几天。新规则先放观察模式跑几天,只记录不拦截,确认没误伤再切拦截,这步省掉会出事故。另外 WAF 只是缓冲垫,SQL 注入的根子还在代码里,参数化查询该写还得写,别指望 WAF 防火墙把所有漏洞都兜住。