Translation in progress
This guide is not yet published in your selected language — you are reading another available version below.
从访问日志找问题:AI 爬虫是否被 CDN 或 WAF 拦截
日志证明发生过什么,配置文件只说明你希望发生什么。
配置意图不如真实请求有说服力
robots.txt 写着 Allow,只能证明你表达了允许意图。访问日志才能回答:谁请求了什么 URL、何时请求、最终收到什么状态和内容大小。
日志证明发生过什么,配置文件只说明你希望发生什么。
一、最小日志字段
保留并依法合规处理:
- 时间;
- 请求方法和路径;
- 状态码;
- User-Agent;
- 来源 IP(共享前脱敏);
- 响应大小;
- 处理时长;
- CDN/WAF 动作或规则 ID;
- 缓存状态。
不要在报告中泄露 Cookie、授权头、查询令牌、客户 ID 或完整个人 IP。
二、先看状态码分布
| 状态 | 可能含义 |
|---|---|
| 200 | 请求成功,但仍需检查正文是否真实 |
| 301/302 | 正常迁移或错误循环 |
| 401 | 需要认证 |
| 403 | WAF、地区、权限或 Bot 策略拦截 |
| 404/410 | URL 不存在或已删除 |
| 429 | 触发限流 |
| 5xx | 应用、源站或网关故障 |
200 也可能返回验证码页或空白壳,因此需要结合响应大小、页面样本和 WAF 事件。
三、分层定位
边缘 CDN 是否收到请求?
├─ 否:DNS、路由或平台尚未访问
└─ 是:WAF 是否放行?
├─ 否:检查规则 ID、Bot 分类、地区和频率
└─ 是:源站是否成功?
├─ 否:应用、认证、超时或错误
└─ 是:正文是否完整且与用户页面一致?四、识别身份时要谨慎
User-Agent 可以冒充。高风险放行应结合:
- 平台官方 IP 范围;
- CDN 的已验证 Bot 能力;
- 反向和正向 DNS(平台适用时);
- 请求行为与时间模式;
- 官方文档更新。
不要永久维护来源不明的第三方静态 IP 清单。
五、最小范围放行
优先放行公开营销页、文档和图片,不要顺手开放后台、账户、内部 API 或管理路径。
放行后继续保留:
- 合理速率限制;
- 路径级权限;
- 输入验证;
- 敏感动作认证;
- 日志与告警。
六、日志分析模板
| Bot 线索 | 路径 | 状态 | 响应大小 | WAF 动作 | 判断 |
|---|---|---|---|---|---|
| OAI-SearchBot | /pricing | 403 | 2 KB | managed challenge | 被阻断 |
| PerplexityBot | /docs | 200 | 84 KB | allow | 可访问,待核正文 |
| GPTBot | /robots.txt | 200 | 1 KB | allow | 仅证明读取规则 |
七、常见错误
- 把 Bot 请求数当成人类流量;
- 看到 User-Agent 就认为身份真实;
- 只看源站,不看 CDN/WAF;
- 为修 403 关闭整站安全防护;
- 日志导出时泄露敏感信息;
- 没有变更前后对照和复测时间。
本文行动清单
- 日志包含路径、状态、User-Agent、大小和 WAF 动作。
- 已按 403、429、5xx 分组定位。
- 高风险身份通过官方方式复核。
- 放行范围仅覆盖必要公开页面。
- 报告已脱敏,不含令牌和个人数据。
- 区分爬虫访问、引用和人类流量。
- 变更后已重新检查日志。
小结
日志不会告诉你为什么被引用,但能可靠证明访问链路在哪里失败。
先用日志确认门有没有打开,再讨论内容为什么没被选中。
Last updated on