你的网站总被扫描。日志里每隔几分钟就有一条/wp-admin、/phpmyadmin的访问记录,有的还带着?id=1' OR '1'='1这样的参数。你知道这是有人在试漏洞。你用了fail2ban和Nginx限流,但日志里那些攻击请求还是能打到你的应用服务器——被限流和被拦截是两回事。

如果你的业务在应用层被攻击,你需要的是专门防御这个层面的工具。

Table of Contents

Toggle

  • WAF解决什么问题?和普通防火墙有什么区别
  • 方案一:云厂商WAF——开箱即用
  • 方案二:开源WAF自建——灵活可控
  • 两种方案怎么选?
  • 真实案例
  • 最后一句

WAF解决什么问题?和普通防火墙有什么区别

普通防火墙(安全组/iptables)工作在网络层和传输层(L3-L4),基于IP、端口、协议做黑白名单。攻击者只要把SQL注入语句藏在HTTP请求里,普通防火墙放行——因为它只看目标IP和端口,不关心HTTP请求内容。https://ahgw.dbappsecurity.com.cn/content/details4849_33460.html

Web应用防火墙(WAF)工作在应用层(L7),能解析HTTP请求,检测请求内容中是否包含SQL注入、XSS跨站脚本、命令注入等攻击特征。https://ahgw.dbappsecurity.com.cn/content/details4849_33460.html简单说:普通防火墙管“谁进”,WAF管“进来后干了什么”。https://learn.microsoft.com/zh-tw/training/modules/describe-basic-security-capabilities-azure/4-describe-web-application-firewall?ns-enrollment-type=learningpath&ns-enrollment-id=learn.wwl.describe-capabilities-of-microsoft-security-solutions

WAF能防的攻击类型覆盖了网站面临的大部分应用层威胁:SQL注入、XSS、CSRF、文件包含、远程命令执行、CC攻击(应用层DDoS)等。https://ahgw.dbappsecurity.com.cn/content/details4849_33460.htmlhttps://learn.microsoft.com/zh-tw/training/modules/design-implement-network-security-monitoring/10-implement-web-application-firewall-on-azure-front-door?ns-enrollment-type=learningpath&ns-enrollment-id=learn.wwl.designing-implementing-microsoft-azure-networking-solutions-az-700

方案一:云厂商WAF——开箱即用

阿里云、腾讯云、华为云等主流云厂商都提供WAF服务。接入方式通常是改CNAME解析,把流量先引到WAF节点,经过检测后再回源到你的服务器。https://support.huaweicloud.com/usermanual-waf/waf_05_0001.htmlhttps://www.alibabacloud.com/zh/solution/tech-solution/web-protection

优点:

无需运维:不需要自己维护服务器、更新规则。云厂商负责规则库更新,突发0day漏洞时,防护规则最快2小时内自动下发虚拟补丁。https://www.huaweicloud.com/intl/zh-cn/product/waf.htmlhttps://www.alibabacloud.com/zh/solution/tech-solution/web-protection

弹性扩展:遇到CC攻击或大流量时,WAF节点自动扩容,你的源站不会直接承受攻击压力。https://developer.baidu.com/article/detail.html?id=3620707

一站式能力:除了基础攻击防护,云WAF通常还提供CC防护、BOT管理、访问控制、全量日志等功能,不用自己拼装多个组件。https://www.huaweicloud.com/intl/zh-cn/product/waf.html

缺点:

年费模式:入门版通常几千到一万,专业版和企业版更贵。对于个人站长或小团队,这笔费用需要权衡。https://developer.baidu.com/article/detail.html?id=3620707

数据经过第三方:流量经过云WAF节点,对数据主权敏感的业务(如金融、政务)可能需要评估合规风险。https://developer.baidu.com/article/detail.html?id=3620707https://developer.baidu.com/article/detail.html?id=3609770

方案二:开源WAF自建——灵活可控

主流的开源WAF方案有ModSecurity和基于OpenResty的WAF模块。

ModSecurity是2002年启动的开源WAF引擎,支持Nginx、Apache、IIS,2024年正式成为OWASP基金会项目。https://devguide.owasp.org/en/09-operations/03-modsecurity/#:~:text=the%20OWASP%20CRS.-,Why%20use%20ModSecurity%3F,WAF%2C%20also%20provided%20by%20OWASP.https://owasp.org/www-project-modsecurity/搭配OWASP核心规则集(CRS),覆盖了OWASP Top 10中的常见Web攻击。https://devguide.owasp.org/en/09-operations/03-modsecurity/#:~:text=the%20OWASP%20CRS.-,Why%20use%20ModSecurity%3F,WAF%2C%20also%20provided%20by%20OWASP.https://developer.baidu.com/article/detail.html?id=3758633

典型部署:在Nginx中加载ModSecurity模块,配置CRS规则。https://developer.baidu.com/article/detail.html?id=3620707

优点:

零软件授权成本:开源免费,不需要按年付费。主要成本是服务器硬件和运维人力。https://developer.baidu.com/article/detail.html?id=3609770

数据主权完全掌控:所有流量日志、攻击数据都保存在你自己的服务器上,不存在数据外泄风险。金融、政务等合规要求严格的场景优先考虑自建方案。https://developer.baidu.com/article/detail.html?id=3609770https://developer.baidu.com/article/detail.html?id=3758633

规则完全可控:遇到误报可以自己调整规则,不用等厂商修复。https://developer.baidu.com/article/detail.html?id=3609770

缺点:

需要自己维护:规则更新、性能调优、故障排查都要你自己做。规则配置不当可能导致误报率或性能问题。https://developer.baidu.com/article/detail.html?id=3620707https://developer.baidu.com/article/detail.html?id=3609770

性能开销:ModSecurity在Nginx上作为模块运行时,会增加一定的延迟(典型值5-8%)。https://developer.baidu.com/article/detail.html?id=3620707https://developer.baidu.com/article/detail.html?id=3767199流量较大的场景需要专门规划WAF服务器资源。

两种方案怎么选?

评估维度云WAF开源WAF自建
投入成本年费数千到数万服务器成本+运维人力
运维复杂度低,厂商托管高,需自己维护
规则更新速度快(厂商运营)依赖自己跟进
数据主权流量经过云节点完全自主可控
适用规模中小企业、商业网站金融/政务、有运维能力的团队

你的业务需要什么样的防护力度?

如果你的网站是商业项目、涉及交易或用户数据,云WAF的规则维护和应急响应能力通常优于自建方案,尤其是在0day漏洞爆发时,厂商的快速响应能替你争取修复时间。https://www.huaweicloud.com/intl/zh-cn/product/waf.html

如果你网站流量较小、以个人项目为主,开源WAF自建可以是一个成本可控的替代方案。如果团队有运维能力,能承担规则维护和性能调优工作,自建方案长期性价比更高。https://developer.baidu.com/article/detail.html?id=3609770https://developer.baidu.com/article/detail.html?id=3758633

真实案例

某SaaS企业,日均API调用约500万次。早期用开源WAF自建方案,运维团队每月花约8小时更新规则、排查误报。业务增长后攻击量上升,规则维护占用越来越多时间,最终切换到云WAF,接入后API异常调用从日均3万次降至200次以下,团队运维投入降到几乎为零。https://developer.baidu.com/article/detail.html?id=3620707https://www.alibabacloud.com/zh/solution/tech-solution/web-protection

最后一句

WAF不是“装了就行”的东西。云WAF把运维工作量外包给厂商,自建WAF把控制权留给自己。选哪个,看你有多少时间愿意花在安全上——以及你的网站值不值得这笔年费。

如果你的网站是商业项目,云WAF的年费通常比一次攻击造成的数据泄露损失便宜。如果你的网站是个人项目,ModSecurity+OWASP CRS可以跑在现有服务器上,不需要额外花钱。