跳至正文
中文
立即开始

Web 应用防火墙(WAF)

Web 应用防火墙(WAF)会在 HTTP 流量抵达 Web 应用前进行过滤,拦截符合攻击、滥用或 机器人检测规则的请求。

文章目录(8 个章节)

WAF 的工作原理

WAF 通常作为反向代理部署在 CDN 或托管服务的边缘节点,也可以部署在应用服务器附近。每个 HTTP 请求都要经过检查,获准的流量才会转发给应用。

对于 HTTPS 流量,连接必须在抵达 WAF 前或由 WAF 解密,WAF 才能检查请求。WAF 会根据规则放行、记录、拦截请求,对客户端限速或要求客户端完成验证。因此,拒绝响应可能来自 WAF,而非应用本身。

WAF 检查哪些内容

  • **请求结构:**HTTP 方法、URL 路径、查询字符串、标头、Cookie 和请求正文大小。
  • **攻击特征:**与 SQL 注入、跨站脚本、路径遍历和不安全文件上传相关的输入。
  • **客户端上下文:**来源 IP 信誉、地区、请求速率和过往活动。
  • **自动化信号:**异常的浏览路径、缺少浏览器功能或指纹不一致。这类检查通常来自集成的 机器人检测 功能,而非基础 WAF 规则。

规则可以采用精确匹配、已知攻击特征或风险评分。配置不当的规则可能会拦截正常客户端,因此网站运营方通常会查看日志并针对具体规则做精细调整,而不是直接关闭防护。

WAF 与传统网络防火墙的区别

以下比较针对常规的第 3/4 层网络防火墙。下一代防火墙也可能检查 HTTP 和其他应用层流量。

功能 WAF 传统网络防火墙
层级 HTTP 应用流量 网络和传输层流量
检查内容 URL、标头和正文 IP、端口和协议
保护对象 Web 应用和 API 主机和网络
主要局限 无法修复存在漏洞的代码 无法解析 HTTP 内容

两种控制措施可以同时使用。传统网络防火墙可能允许端口 443 上的 HTTPS 流量,而 WAF 会拒绝通过该连接发送的某个特定请求。

访问受 WAF 保护的网站时使用代理

代理会改变 WAF 看到的来源 IP,但不会改变 Cookie、请求模式、浏览器指纹或应用行为。流量违反策略时,WAF 或关联的 CDN 可能返回 403 Forbidden、显示验证码或限速。

要遵守这些限制,可采取以下措施:

  1. 采集数据前,先查看网站条款和公开的采集工具规则。
  2. 应降低请求频率和并发,而不是通过轮换 IP 规避限制。
  3. 网站返回 429 Too Many Requests 时,应按 Retry-After 指定的时间重试。
  4. 测试自己的应用时,查看 WAF 事件日志和规则 ID;如有需要,将受控测试 IP 地址加入 IP 白名单。

常见问题

WAF 能拦截代理流量吗?

能,但不会仅仅因为使用了代理就拦截流量。如果某个 IP 信誉不佳、承载过多共享流量,或者请求符合安全和自动化检测规则,WAF 可能会将其拦截。

WAF 会返回 403 或 429 错误吗?

两种错误都可能返回。403 通常表示规则拒绝了请求,429 则表示客户端超过请求限制。

WAF 和 机器人检测是一回事吗?

不是。WAF 主要过滤恶意 HTTP 请求,机器人检测则判断客户端是否为自动化程序及其行为方式。许多安全平台会同时提供这两项功能。

相关术语

查看全部术语