蓝易云CDN:防止AI 爬虫和其他机器人恶意抓取
蓝易云CDN:防止AI爬虫和其他机器人恶意抓取
近两年,各类AI公司的数据采集爬虫大量出现,不少站长发现服务器带宽和负载莫名上涨,原创内容也被批量抓走。处理这个问题,关键在于先分类、再决策、后执行,而不是简单地把所有机器人一律拦截。

一、先搞清楚抓取你网站的是谁 🔍
目前访问网站的机器人大致分为四类:
- 搜索引擎爬虫:负责收录和排名,屏蔽后网站可能从搜索结果中消失,一般应放行。
- AI训练爬虫:抓取内容用于训练大模型,例如 GPTBot、ClaudeBot、CCBot 等。
- AI搜索与用户触发抓取:用户在AI产品中提问时实时读取网页,例如 OAI-SearchBot、ChatGPT-User、PerplexityBot 等。
- 恶意机器人:伪造身份的采集器、漏洞扫描器、刷接口脚本。
前三类大多会公开标识身份,第四类才是真正需要重点防范的对象。
⚠️ 各公司的爬虫名称会不断调整和新增,配置前请以其官方文档公布的最新名称为准。
二、第一步:用robots.txt表明态度 📄
对于遵守规则的AI爬虫,robots.txt是最直接的方式。例如禁止部分常见AI训练爬虫,同时保留搜索引擎收录:
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Google-Extended
Disallow: /
这里有两个细节需要说明:
- Google-Extended 并不是独立的爬虫,而是一个控制标识,用于声明内容是否可用于Gemini等模型训练,屏蔽它不影响网页在搜索中的正常收录。
- 训练爬虫和搜索类爬虫往往是分开的,如果希望网站在AI搜索结果中被引用,可以只禁训练类、保留搜索类。
三、第二步:服务端强制拦截 🚫
robots.txt只是约定,并不具备强制力。据公开报道,部分爬虫存在不遵守该规则的情况。对于明确不想放行的机器人,可在Nginx中按User-Agent直接拦截:
map $http_user_agent $block_bot {
default 0;
~*GPTBot 1;
~*CCBot 1;
~*Bytespider 1;
}
server {
if ($block_bot) { return 403; }
}
在CDN控制台中,如果提供了按User-Agent或请求头设置访问规则的功能,也可以在边缘节点直接拦截,减少回源压力,具体以控制台实际功能为准。
四、第三步:应对伪装身份的机器人 🎭
UA拦截只对“诚实”的爬虫有效,伪装成浏览器的采集程序需要组合手段:
- 身份核验:部分AI公司公开了爬虫的IP段,搜索引擎则支持反向DNS核对。UA声称是某爬虫、IP却对不上的,基本可判定为冒充。
- 频率限制:对单IP、单会话设置访问上限,超出后触发验证或限速。
- JS挑战与人机验证:过滤不具备浏览器环境的自动化请求。
- 蜜罐链接:在页面中放置普通用户看不到、且已在robots.txt中禁止的路径,访问者可直接标记为恶意机器人。
五、上线后持续观察 📊
规则不是一次配置就结束。建议每周查看访问日志,统计各类UA的请求量和带宽占比,重点关注:新出现的爬虫名称、突增的机房IP、集中访问的接口路径。发现误伤正常用户或搜索引擎,要及时调整。
总结 ✅
防止AI爬虫抓取,可以按robots.txt声明、服务端强制拦截、行为识别兜底三层来做。先分清搜索引擎、AI训练、AI搜索和恶意机器人,再根据自身对收录与内容保护的取舍制定规则。CDN在边缘承担拦截和限速,源站负责精细判断,两者配合,才能既保护内容,又不影响网站的正常曝光。
版权声明:
作者:admin
链接:https://www.tsycdn.com/waf/3302.html
文章版权归作者所有,未经允许请勿转载。
THE END