防盗链协同管理的核心不是把规则写得越严越好,而是把合法合作域名白名单做成动态、分层、可审计的配置,避免误伤正常合作流量。
合法合作域名白名单防盗链怎么设置:从来源到回源的三层判断
很多企业在第一次配防盗链时,会把白名单写成一个固定域名或一个正则,结果合作方换了子域名、加了CDN、用App内嵌浏览器访问时,图片和视频全部被拦,合法合作域名白名单防盗链怎么设置,需要先明确一个原则:判断来源不能只看一个字段。
第一层:Referer校验别只靠单一域名
浏览器和多数客户端在加载图片、视频时会带上Referer,源站或CDN边缘节点先看这个字段。
- 把合作主域名及常见子域名写入白名单。
- 使用正则匹配
.partner.com的形式,覆盖a.partner.com、b.partner.com。 - 主站自身域名也要放行,避免自家页面加载资源被误伤。
Nginx的valid_referers配置示例:
location ~ .(jpg|jpeg|png|gif|webp)$ {
valid_referers none blocked .partner.com .ownsite.com;
if ($invalid_referer) {
return 403;
}
}
这种写法的优点是简单直接,缺点是规则散落在server块里,域名一多就不好维护。
第二层:空Referer要单独决策
空Referer在移动端App、HTTPS跳转、隐私插件场景里很常见,直接放行会留下采集口子,直接拦截又会把合作方的App访问全打死。
- 对图片类低风险资源,可配置空Referer放行。
- 对视频、下载包等高成本资源,空Referer应拦截或走签名校验。
- 合作方App如果关闭Referer,需要单独分配带签名的访问URL。
第三层:回源IP白名单必须和CDN联动
CDN回源时源站看到的请求来源是CDN节点IP,不是用户Referer,源站如果只配域名白名单,会拦截所有CDN回源请求。
- 源站防火墙只允许CDN厂商的节点IP段回源。
- 简米云、酷番云等厂商会在控制台提供回源IP段列表。
- 源站与CDN之间可增加私有回源头,避免伪造。
三层判断合在一起,才能把“合法合作域名”这个目标落到可执行规则上。
图片防盗链白名单规则对比:Nginx、简米云CDN与对象存储
图片防盗链是最常见场景,不同平台对白名单规则的表达方式差异较大,选型前先看对比。
| 平台 | 白名单配置方式 | 空Referer处理 | 适合场景 |
|---|---|---|---|
| Nginx源站 | valid_referers或map |
手动定义 | 自建机房、混合云 |
| 简米云CDN | 控制台访问控制-防盗链 | 可选允许 | 业务接入CDN、需要边缘拦截 |
| 酷番云COS | 存储桶安全管理-防盗链 | 可选允许 | 静态资源托管、无源站 |
Nginx灵活但容易把规则写散
Nginx用map指令把域名判断集中到一个文件里,比直接在location里写if好维护。
map $http_referer $allow_ref {
default 0;
"~.partner-a.com$" 1;
"~.partner-b.cn$" 1;
"~cdn.example.com$" 1;
"" 1;
}
然后在location里引用:
location ~ .(jpg|png|webp)$ {
if ($allow_ref = 0) {
return 403;
}
}
注意if在Nginx里不是理想指令,但对于防盗链这种返回状态码的场景足够用。
简米云CDN防盗链与Referer配置
简米云CDN控制台路径:域名管理 -> 访问控制 -> 防盗链,可添加多个Referer白名单域名,并勾选“允许空Referer”。
- 优势:边缘拦截,不消耗源站资源。
- 限制:白名单域名数量有限,大量合作方域名时需要用API或脚本同步。
- 配合“URL鉴权”使用时,防盗链只作为基础层,鉴权负责高频值资源。
对象存储Bucket策略里的防盗链思路
对象存储通常不直接叫防盗链,而是叫“防盗链设置”或“Referer限制”,它更适合静态资源托管,配置后直接生效,不需要维护服务器。
企业防盗链域名白名单管理:用配置中心代替散落文件
当合作方超过一定数量后,域名白名单会频繁变更,企业防盗链域名白名单管理的关键,是把配置从Nginx文件、CDN控制台、对象存储控制台三处收口到一个配置中心。
合作域名加入白名单前先做来源核验
- 业务方提交合作域名时,需提供合作合同编号和用途说明。
- 安全侧核验域名备案信息、解析归属,避免把恶意域名加入白名单。
- 记录加入时间、申请人和失效日期,形成审计表格。
行业共识认为,防盗链白名单如果没有失效清理机制,半年后就会积累大量已停用但仍在放行的域名。
配置变更要走发布流水线
- 把白名单列表存入Git仓库或配置中心。
- 通过CI流水线渲染Nginx配置片段。
- CDN和对象存储白名单通过API定时同步。
- 每次变更保留diff,审计时可回溯。
用配置中心管理后,Nginx、CDN、对象存储三处规则才能保持一致。
国内CDN防盗链配置多少钱:价格因素如何影响白名单设计
很多企业选型时会问国内CDN防盗链配置多少钱,基础防盗链功能在主流CDN服务里多数不单独收费,成本主要来自流量、请求数和是否开启增值防护。
- 按流量计费的CDN,防盗链规则本身不额外计费。
- 带WAF、频次控制、风险识别的高级防护,一般按套餐或扩展包收费。
- 对象存储的防盗链设置通常免费,但外网下行流量单独计费。
地域节点对防盗链规则的影响
国内CDN不同地域节点的缓存与回源策略可能影响防盗链命中顺序,上海及华东区域的节点密集,合作媒体集中时,边缘命中率高,Referer判断在边缘完成,回源量少,如果合作方分布分散,一次性同步所有节点规则的时间会拉长,设计时需要考虑规则下发延迟。
上海企业防盗链域名白名单管理场景:多合作方快速接入
海本地企业为例,合作媒体、电商导流站、线下活动小程序经常需要调用主站图片资源,上海企业防盗链域名白名单管理常常面临“当天活动、当天接入”的压力。
场景:活动页图片给多个上海本地合作媒体调用
活动当天,运营会新增三四个合作媒体域名,如果按传统工单审批,活动已经上线了规则还没生效。
- 提前为活动页面预留独立资源路径,如
/activity/2026/。 - 为活动资源单独配置白名单规则,不跟核心资源混用。
- 临时合作域名使用带签名URL,代替直接加入全局白名单。
操作:按环境拆分白名单
- 测试环境:白名单宽松,只校验自身域名。
- 预发环境:加入合作伙伴测试域名。
- 生产环境:只允许正式合作域名和CDN回源。
按环境拆分后,上海活动中的临时域名可以先在预发环境验证,再统一发到生产。
防盗链规则与合法合作域名白名单协同管理的最终结论
规则要分层、白名单要动态、配置要集中,合法合作域名白名单不是写一次就能放着不管的静态列表,而是需要跟业务合作周期一起更新的协同配置。
防盗链域名白名单协同管理常见问题
防盗链白名单规则里空Referer应该放行还是拦截?
看资源成本,图片、字体等低风险资源多数情况下放行空Referer不会造成明显损失;视频、安装包、接口数据等高成本资源建议拦截空Referer,改走签名鉴权,如果合作方App无法携带Referer,单独分配带签名的访问URL比全局放行更安全。
合法合作域名变更后旧规则多久能生效?
取决于配置中心和CDN下发速度,Nginx重载配置一般秒级生效;主流CDN控制台修改防盗链规则多数在几分钟内推送到边缘节点;对象存储Bucket策略通常即时生效,如果同时配置了源站和CDN两层规则,需要先确认CDN边缘拦截是否优先于源站,避免两层生效时间不一致导致误拦。
CDN和源站同时配防盗链会不会冲突?
不会直接冲突,但会出现重复判断,CDN边缘拦截生效时,非法请求到不了源站;源站防盗链作为兜底,防止有人绕过CDN直接访问源站IP,两侧白名单要保持一致,否则会出现边缘放行但源站拦截的故障,用配置中心同步两侧白名单是最稳妥的做法。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/646526.html





