资讯文章 资讯 · NEWS
防盗链别把蜘蛛也挡在门外:目录站图片 CDN 的 Referer 策略怎么写
2026-10-23 约 1,766 字 预计阅读 4 分钟 yiyunkj
防
目录站有大量图片:条目缩略图、站点 favicon、分类图标。图片被盗链会吃带宽,所以很多人第一反应是开防盗链。开完之后常见的结果是——图片搜索带来的流量一夜之间归零,缩略图在搜索结果里全部变成占位符。

图片来源:网络,版权归原作者所有,侵权请联系删除
问题出在哪:爬虫的请求没有 Referer
防盗链最常见的写法是判断 Referer 头:来自自己域名的放行,其他一律拒绝。逻辑看起来没毛病,但它漏了一类请求——直接访问图片 URL、不带 Referer 的请求。
搜索引擎的图片爬虫抓取图片时,通常是直接请求图片地址,不会带上 Referer。如果你的规则是「Referer 为空就拒绝」,那它们全被挡在门外了。
还有一类更隐蔽:防盗链规则只放行了 Referer 包含自己域名的情况,但爬虫是从搜索结果的图片位发起的,Referer 可能是别的来源,同样被拒。
正确的规则应该怎么写
核心是两条:允许空的 Referer,并且给搜索引擎的图片爬虫单独开一个白名单。
以 Nginx 为例,一个相对稳妥的写法是:
location ~* \.(jpg|jpeg|png|gif|webp|svg|ico)$ {
valid_referers none blocked server_names
*.google.com *.googleusercontent.com
*.bing.com *.baidu.com *.so.com
*.yandex.com *.sogou.com;
if ($invalid_referer) {
return 403;
}
}
这里的 none 表示放行 Referer 为空的请求,blocked 表示放行被防火墙或代理去掉了 Referer 的请求。这两项是保住爬虫访问的关键。
在 CDN 层面配置时逻辑一样:防盗链的「空 Referer」选项要设成允许,而不是拒绝。很多 CDN 控制台默认是拒绝,需要手动改。
只认 User-Agent 是不够的
另一种做法是判断 User-Agent 里有没有 Googlebot-Image、Bingbot 之类的标识。这可以作为辅助手段,但不能单独作为放行依据——User-Agent 是可以伪造的,任何人都能把自己的请求伪装成 Googlebot。
真正要验证一个爬虫是不是真的,标准做法是 反向 DNS 验证:
- 对请求 IP 做反向解析,拿到主机名
- 确认主机名以
.googlebot.com或.google.com(对应search.msn.com等)结尾 - 再对这个主机名做一次正向解析,确认解析回来的 IP 与请求 IP 一致
两步都对上才是真爬虫。CDN 厂商和主流 WAF 一般内置了这个能力,直接开启比自己写规则稳。
目录站为什么特别在意图片爬虫
普通内容站可能觉得图片搜索流量可有可无,但目录站不一样:
- 条目缩略图是天然的图片搜索素材:用户搜「某某网站 logo」「某某平台首页截图」,你的缩略图有机会直接出现在图片搜索结果里,点进去就是条目详情页。
- favicon 有独立需求:很多人搜某个站点的图标就是为了拿 favicon。目录站天然聚合了大量 favicon,这是一个被严重低估的入口。
- 图片结果会带来反向查找:用户看到一张截图想找这个站,图片搜索是唯一路径。
把图片爬虫挡掉,等于主动放弃这一整块入口。
带宽真的吃不消怎么办
防盗链的初衷是省带宽,这个诉求合理。有几个不影响爬虫的替代方案:
| 方案 | 做法 | 对爬虫影响 |
|---|---|---|
| 格式与尺寸优化 | 缩略图转 WebP/AVIF,按展示尺寸生成,不做大图缩放 | 无,反而更快 |
| 限速而非封禁 | 对单 IP 做请求频率限制,而不是直接 403 | 正常频率不受影响 |
| 带签名的临时 URL | 仅限需要保护的高清原图,缩略图保持公开 | 缩略图仍可抓 |
| CDN 缓存 | 图片全部走 CDN,源站带宽压力本来就不大 | 无 |
多数情况下,把缩略图按实际展示尺寸生成并转 WebP,带宽消耗就能降下来一大截,根本不需要靠封禁解决问题。
上线前后要做的检查
防盗链规则改动后,按顺序自查一遍:
- 用
curl不带 Referer 请求一张缩略图,确认返回 200 而不是 403 - 用
curl带上 Googlebot-Image 的 UA 请求一次,确认返回 200 - 在 Search Console 的网址检查里用「查看已抓取的页面」,确认图片资源没有报「因权限无法访问」
- 改完一周后看图片搜索的展示量和点击有没有异常下滑
防盗链的目的是挡住白嫖带宽的人,不是挡住给你送流量的人。规则写得太狠,先饿死的是自己。