CDN访问控制实战:Referer防盗链、IP黑白名单与频次控制
本内容发表于:2026-07-10 14:29:14
浏览量
1053

CDN访问控制实战:Referer防盗链、IP黑白名单与频次控制

微信图片_2026-07-10_142801_976.png

去年一个客户找到我,一脸无奈:“这个月CDN账单翻了三倍,业务量没涨,是不是被人刷了?”我让他打开CDN控制台的流量分析,按Referer排序看了一眼。排名第一的不是他的网站域名,而是一个陌生的域名——他的图片被那个网站直接引用了。

CDN默认不会对访问做任何限制,因为CDN不知道你的业务逻辑。你需要自行配置访问控制策略。

今天聊聊CDN访问控制的三件套:Referer防盗链、IP黑白名单、频次控制。配错了,流量被盗刷;配对了,成本和风险一起降。

01 Referer防盗链:第一道防线

工作原理:HTTP请求头里有个Referer字段,告诉服务器“用户从哪个页面跳转过来的”。CDN根据这个字段判断请求来源是否合法。

两种模式:白名单和黑名单只能二选一。白名单模式最常用——只允许你自己的域名访问资源,其他全拦。黑名单模式适合拒绝特定恶意来源。

空Referer是最大的漏勺:空Referer就是请求头里没有Referer字段。用户在浏览器地址栏直接输入URL访问时,请求不带Referer。金山云默认允许空Referer访问,如果允许空Referer,攻击者用脚本直接请求图片URL、不带Referer,就能绕过白名单。

那家客户的问题就在这——配置了白名单但允许空Referer,攻击者直接构造不带Referer的请求绕过了限制。

配置建议:确认业务是否需要空Referer(通常不需要),在CDN控制台关闭“允许空Referer访问”;白名单用通配符覆盖子域名:*.example.com

02 IP黑白名单:精准拦截

什么时候用IP黑白名单? 当你在日志里发现某个IP在短时间内产生大量请求(爬虫、撞库、CC攻击),把IP加黑名单

支持的格式:单个IP(192.168.1.1)、IP段(192.168.1.0/24)、CIDR格式。每个域名通常可配置100条左右

优先级:同一域名下IP黑名单和白名单只能二选一,不可同时配置

03 频次控制:拦截分散攻击

工作原理:设定“单IP在单节点每秒最多访问N次”,超出阈值的请求直接拒绝(返回514或403)

什么时候用频次控制? 恶意IP量大且分散,不便于逐个配置IP黑名单时,频次控制是最佳选择

配置注意:每个域名最多3条策略,需合理分配规则。阈值不要设太低,否则误伤正常高频用户(如API调用)

04 进阶防护:时间戳鉴权

Referer可以被伪造,IP可以被代理隐藏。对于高价值资源(付费视频、机密文件),需要更高级的防护——时间戳鉴权。URL中携带时间戳和签名(MD5/SHA256),CDN节点验证签名和时效性,双重校验通过才放行

写在最后

CDN访问控制要分层配置:普通资源用Referer白名单+关闭空Referer发现攻击IP时临时加黑名单IP分散时用频次控制兜底高价值资源上时间戳鉴权

那家客户后来关闭了空Referer,盗刷流量当月归零。他说:“原来防盗链最大的漏洞,是自己留的后门。”