阿里云免实名账号 腾讯云COS安全防盗链配置Referer白名单拒绝流量盗刷
腾讯云COS安全防盗链配置Referer白名单拒绝流量盗刷:实操与决策指南
先给正在决策的你几个关键结论
- 只用COS Referer白名单可快速止血,但App内置浏览器、微信/QQ打开、隐私浏览等“空Referer”场景容易误杀,务必先确认是否需要勾选“允许空Referer”。
- 站点已经接入CDN(腾讯云CDN/EdgeOne/第三方),优先在CDN做Referer或Token防盗链,COS端仅做兜底;直连COS的才在COS侧严格管控。
- 拦截≠零成本:403请求仍会计入请求计费(不产生下行流量费),异常刷量时请求费用也可能攀升,建议联动CDN限速/挑战、人机校验。
- 阿里云免实名账号 国际站新账号在大流量出网(TB级)时容易触发风控限额或人工复核,提前准备实名认证与支付额度,提高可用度并避免业务中断。
- 内容在小程序/合作方外链传播?Referer白名单常常会挡住“正当外链”,更稳妥的做法是私有桶+预签名URL或CDN Token校验分发。
方案取舍:四种常见做法的场景化对比
| 方案 | 拦截效果 | 对App/小程序影响 | 实施复杂度 | 计费影响 | 典型场景 |
|---|---|---|---|---|---|
| COS Referer白名单 | 对普通盗链有效,Referer可伪造 | 需考虑空Referer,易误杀 | 低(控制台几步) | 403仍计请求费,省下行费 | 临时止血、直连COS的网站图床 |
| CDN Referer白名单 | 拦截更靠前,缓解源站压力 | 可按UA/路径细化放行 | 中(需理解CDN回源与日志) | CDN边缘出网单价通常优于COS直出 | 已接入CDN的Web/小程序静态资源 |
| 私有桶 + 预签名URL | 强,基于时间与密钥 | App/前端需改造签名逻辑 | 中高(签名、过期、缓存) | 避免公共直链,被动拉取减少 | 付费内容、敏感图片、下载类 |
| CDN Token防盗链 | 强,URL带签名,难伪造 | 客户端/网关拼签名 | 中(CDN规则+签名中台) | 请求在边缘被挡,省源站成本 | 大规模分发、活动流量波动大 |
实操:在COS配置Referer白名单(拒绝流量盗刷)
上线前清单
- 统计合法来源:你的主站域名、静态资源域名、CDN加速域名、后台管理域名、App内H5容器域。
- 是否需要“允许空Referer”:微信/QQ/抖音内置浏览器、Safari隐私模式、直接复制链接到地址栏,Referer常为空或被裁剪。
- 是否接入CDN:若有,需决定“CDN是否回源透传Referer”。不透传则COS端需允许空Referer或允许CDN域名。
- 准备回滚方案:一键改为“允许空Referer”或关闭防盗链,避免线上全面故障。
控制台配置步骤
- 登录腾讯云控制台 → COS → 选择目标存储桶。
- 进入“安全管理/防盗链(Referer)”,选择“白名单模式”。
- 添加白名单规则:
- 支持通配:如 .example.com 表示放行所有子域;精确 www.example.com 只放行该子域。
- 建议分别添加业务涉及的域名与CDN域名,避免遗漏。
- 根据前述评估勾选/不勾选“允许空Referer”。线上ToC业务通常建议先勾选,再通过CDN/Token逐步收紧。
- 保存,等待规则生效(一般数分钟内)。
验证与回归测试
- Web验证:从站内页面正常加载图片;在新标签直接粘贴图片URL,若未允许空Referer应返回403。
- 命令行:curl -H "Referer: https://www.example.com" https://bucket.cos.region.myqcloud.com/xxx.jpg 应返回200;换成非法Referer应返回403。
- App/小程序:分别在微信/QQ/抖音/iOS Safari隐私模式下打开页面,确认关键路径不被误杀。
常见规则写法建议
- 若业务分散在 a.example.com、img.example.com,使用 .example.com 覆盖子域;若需排除第三方子域,改用精确列举。
- 不要写 http/https 前缀,多数场景只匹配域名;若控制台要求完整格式,保持与文档一致,统一大小写。
- 不要使用IP做白名单,Referer基于域名,IP来源不稳定且易被伪造。
与CDN联动:避免“源站拦截、边缘放行”的错配
腾讯云CDN/EdgeOne场景
- 在CDN“访问控制”开启Referer白名单或Token防盗链,优先拦截在边缘。
- 回源策略:
- 透传Referer:COS白名单需包含真实来源域;不建议只放行CDN域,因为浏览器Referer为页面域而非CDN域。
- 阿里云免实名账号 不透传Referer:COS端需“允许空Referer”,否则回源会403。
- 若使用“回源改写Referer”,请评估后端只看域名,COS并不识别自定义密钥型Referer。
第三方CDN(如Cloudflare)
- 默认透传Referer,若在Transform Rules里清理了Referer,COS端必须允许空Referer。
- 建议CDN做Token防盗链,COS端只做宽松白名单或关闭,减少双重判断带来的误杀。
成本与数据测算:如何判断“值不值”
计费影响拆解
- 被拦截请求:产生请求计费(按万次/百万次),不产生下行流量计费。
- 未拦截请求:正常计费(下行流量 + 请求)。
- 接入CDN后:更多命中在边缘,下行以CDN边缘出网计费,源站COS账单更平稳。
示例测算(假设值,按量级判断)
- 某天遭遇盗链请求5000万次、平均图片100KB。若不拦截:约5TB下行;启用白名单后,绝大多数被403拦截,下行≈0,但5000万次请求仍计费,通常为“数百美元量级”。
- 接入CDN并在边缘拦截:边缘处理这5000万次,源站请求骤降,COS请求与下行成本双降。一般边缘出网单价较COS直出低20%~50%(区域差异较大,具体以价格页为准)。
- 优化组合:热门小图合并雪碧/精灵、启用长缓存、URL指纹,能进一步减少请求量级。
预算与告警
- 启用COS访问日志与计费告警:对403比率、单日请求量、下行流量设置阈值。
- 国际站大额出网前,先提升信用额度或预充值,避免账单失败触发停服。
账号与风控:购买、实名认证、充值/续费、支付方式的坑
站点与认证
- 中国站(cloud.tencent.com):个人需身份证+人脸,企业需营业执照;国内CDN加速域名通常要求ICP。
- 国际站(intl.cloud.tencent.com):个人/企业需提交境内外有效证件,企业建议做企业认证以获得更稳定的信用额度与发票方案。
支付方式差异
- 中国站:微信/支付宝/银行卡皆可,支持预付充值。
- 国际站:Visa/Mastercard/JCB等信用卡,部分地区支持 PayPal;新绑卡会有小额预授权验证。
- 建议:国际卡需开通3DS,账单地址与实名信息一致,跨国消费易触发风控时请提交对账单或授权函。
阿里云免实名账号 充值与续费
- COS为按量计费,无需“续费”,但需确保余额/信用可用。
- 高峰期建议预充值或申请提高信用额度;对TB级出网的活动,应提前提交工单沟通用量预期,降低误判风险。
风控审核与使用限制
- 新账号短时间内出现异常请求/出网激增,可能触发临时限额或人工核验(尤其国际站)。
- 涉及版权敏感的公开内容被大量外链,平台可能要求提供内容授权证明;必要时请调整为私有桶+授权访问以降低风险。
常见失败原因与排查路径
- CDN透传Referer而COS未放行实际页面域名 → 在COS白名单补齐页面域名或在CDN拦截。
- 未考虑空Referer → 微信/QQ内置浏览器大量403;临时勾选“允许空Referer”,再用CDN的Token细化放行。
- 写了 http://www.example.com 而COS仅按域名匹配 → 改为 www.example.com 或 .example.com。
- 只放行CDN域名,忘记页面域名 → 浏览器Referer为页面域,非CDN域,导致403。
- 第三方CDN清除了Referer → COS需允许空Referer或让CDN保留Referer。
- 规则生效存在数分钟延迟 → 配置后立即发版导致误判;发布窗口预留10~15分钟观测期。
- 阿里云免实名账号 开启严格拦截导致SEO工具与监控探测失败 → 给探测IP/UA走CDN灰度或,为探测域配置单独策略。
- 以为拦截就“零成本” → 大量403仍记请求费;需要同时限速、人机挑战或WAF协同。
实际案例:从5TB/日盗刷到平稳的三步走
阿里云免实名账号 背景:跨境电商A,COS直出商品图,无CDN。营销后被论坛与聚合站大规模外链,单日出网从300GB飙到5TB。
- 第一天临时止血:COS开启白名单,放行 a.example.com 与 .example-cdn.com,并勾选“允许空Referer”。下行从5TB降至0.6TB,403请求约3000万次。
- 第二天结构性治理:接入腾讯云CDN,开启边缘Referer白名单+路径限速,COS端继续允许空Referer。下行进一步降至0.2TB,源站请求降到日均500万。
- 第三天提效与风控:核心页面接入CDN Token签名,长缓存+URL指纹;同时提升国际站信用额度并设置预算告警。盗链请求基本在边缘被拦,源站稳定。
结果:七日内整体成本较峰值下降约70%~80%,且未再触发风控。
FAQ:上线前后最常被问到的12个问题
- 开启白名单后,直接在浏览器地址栏访问图片会怎样?若未允许空Referer,通常403;允许空Referer则放行。
- 为什么还是有未知Referer流量?隐私浏览、部分App内核、跨协议跳转、第三方CDN改写都会导致Referer缺失或裁剪。
- 能不能白名单写IP?不建议。Referer基于域名,IP易变且无实际意义。
- 阿里云免实名账号 是否支持正则?以控制台说明为准,通常支持通配符,尽量用清单式管理降低误配。
- 使用HTTPS是否影响Referer?不会本质影响,但某些Referrer-Policy会裁剪路径,仅保留源站域。
- 403是否收费?通常按请求计费但不产生下行流量费,量大仍有成本压力。
- 我用Cloudflare前置,COS还需要白名单吗?建议COS端宽松(允许空Referer或放行CF回源策略),安全策略前置到Cloudflare完成。
- 微信小程序图片403怎么办?小程序WebView可能不带Referer,COS端允许空Referer,或改为CDN Token/私有桶预签名访问。
- 会影响搜索引擎收录吗?搜索引擎抓取常为空或特殊UA,建议给用于SEO的域名单独策略或走CDN并放宽。
- 阿里云免实名账号 如何灰度上线?先开启观测:仅在CDN拦截,COS不拦;确认OK后再在COS收紧,减少整体回滚风险。
- 国际站大额出网会触发什么审核?常见为额度锁定或补充KYC/用途说明,请提前提交工单报备活动峰值。
- 企业多团队协作如何避免误改?开启变更流程,配置变更写入文档;COS访问策略与CDN策略分人分权。
地区与合规差异要点
- 中国内地加速:域名需备案;国际站账号通常无法直接在内地节点加速,需合规手续。
- 跨区域访问:COS桶地域与用户分布不匹配会增大跨境出网成本;CDN或多桶就近策略能有效节流。
落地建议(按优先级)
- 已有CDN:先在CDN做Referer/Token防盗链与速率限制,再评估COS端是否需要白名单兜底。
- 仅COS直出:立即启用白名单,“允许空Referer”先开;完成App/小程序兼容后再逐步收紧。
- 对外合作与SEO:为合作/爬虫准备独立加速域或签名通道,避免统一白名单误杀。
- 阿里云免实名账号 成本与风控:设置预算告警、403占比阈值报警;国际站提前提升信用额度,准备支付备选(次卡或PayPal)。
- 中长期:过渡到“私有桶+预签名URL”或“CDN Token”作为核心资源的常态方案。

