SEO 百科

WAF 与防火墙

本页目录

WAF 与防火墙

WAF 与防火墙 是网站前面的两道过滤。防火墙按地址与端口决定连接放不放进来,WAF 在应用层看请求内容,按规则拦下带攻击特征的请求[1]。它们能挡掉攻击,也可能把搜索引擎的爬虫一起挡掉,后一种失误会直接让页面抓不到[2]。

它拦住的对象

WAF 工作在第七层,也就是应用层。Cloudflare 说,WAF 的职责是过滤并监控 HTTP 流量,位置在 Web 应用与互联网之间[1]。常见目标是跨站伪造、跨站脚本、文件包含、SQL 注入[1]。OWASP Top 10 把这类问题整理成一份权威清单[6]。

WAF 按规则集工作,规则也叫策略。Cloudflare 指出,它的价值有一部分来自改规则的快慢,攻击方式一变就能马上跟上,比如流量攻击期间临时加上限速[1]。

部署方式与选购取舍

三种部署方式各有代价[1]。

  • 网络型:多为硬件,装在本地,延迟最低,采购与运维成本最高。
  • 主机型:装进应用软件里,省钱一些,可定制,但占服务器资源,实施也复杂。
  • 云型:改一下 DNS 就接上,按月付费,前期投入小。代价是把一部分控制权交给服务商,有些规则成了黑箱[1]。

规则模型分两种[1]。

  • 黑名单模型挡已知的攻击特征。
  • 白名单模型只放行事先批准的流量。

Cloudflare 说,多数产品把两种混着用[1]。刚上线时用黑名单更简单,业务稳定之后再往白名单收。

误拦爬虫的代价

这是站长最常踩的坑。抓取诊断手册提醒,站点可能“由于系统级问题而阻止了百度访问,例如 DNS 配置问题、配置不当的防火墙或 DoS 防护系统”[4]。

同一条目把原因写得很清楚:防护系统会自动拦下超量的服务器请求,而爬虫发出的请求比普通用户多,于是被当成攻击挡掉[4]。

Google 在博客里承认,想访问网站的机器人有时会进 CDN 的屏蔽名单,通常是其中 WAF 的名单,结果是抓取工具进不来,页面可能从搜索结果里消失[3]。

放行爬虫的做法

两家引擎都给了核验办法,可以照着抄。Google 把爬虫分成常见爬虫、特殊爬虫、用户触发的抓取器三类,并公布各自的 IP 段[2]。Googlebot 的反向解析结果形如:crawl-66-249-66-1.googlebot.com[2]。

Google 给的两步是:先对来访 IP 做反向解析,确认域名属于 googlebot.com、google.com 或 googleusercontent.com;再对这个域名做正向解析,确认解析回来的地址与原始 IP 一致[2]。

百度给的是同一条思路,判定线更短:Baiduspider 的主机名以 *.baidu.com 或 *.baidu.jp 结尾,不符合的即为冒充[5]。

落到配置上,有两件事要做。把公布的 IP 段放进放行名单,名单要跟着官方更新走;再从日志里核验来访身份,确认之后再决定放不放[2]。

Google 还提醒,IP 可能在无人察觉的情况下被自动加进屏蔽名单,所以名单要定期检查[3]。

常见误用

  • 沿用默认防护规则上线。默认规则按流量特征判定。爬虫的请求量天然偏高,这正是被误判的起点。
  • 只按 User-Agent 放行。这个字段可以伪造,冒充的爬虫会跟着一起进来。
  • 放行名单设完就不管。官方 IP 段会变,名单不更新等于没设。
  • 忘了内容层的拦截。UA 放行了,规则又按请求内容把抓取工具挡在门外[3]。

附录

参见

参考资料

官方(境外)

  1. 《What is a WAF? | Web Application Firewall explained》,Cloudflare Learning Center。
  2. 《验证 Googlebot 和其他 Google 抓取工具》,Google 搜索中心。
  3. 《抓取 12 月:CDN 和抓取》,Google 搜索中心博客,2024-12-24。

官方(国内)

  1. 《平台工具使用手册(抓取诊断)》,百度搜索资源平台,2020-08-14 更新。
  2. 《Baiduspider》,百度。

第三方

  1. 《OWASP Top 10》,OWASP。

外部链接

无。