必须配置防盗链规则来限制非法引用,最常用方式是在tos控制台设置referer白名单:登录控制台→进入tos→选择桶→「传输管理」→「防盗链」→开启referer防盗链并启用白名单→填写允许域名→勾选“空referer允许访问”→保存即生效;还可通过cdn叠加referer二次校验或url鉴权实现双重防护,或使用sdk生成带时效的预签名url实现一次性安全外链。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你的火山引擎对象存储(TOS)中存放了图片、视频等静态资源,又担心被其他网站直接盗用链接造成流量浪费或内容滥用时,必须配置防盗链规则来限制非法引用。
在TOS控制台设置Referer白名单
这是最常用且生效最快的防盗链方式,适用于绝大多数Web场景。
第一步:登录火山引擎控制台 → 进入「对象存储 TOS」→ 选择目标存储桶 → 点击左侧菜单「传输管理」→「防盗链」。
第二步:开启「Referer防盗链」开关,勾选「启用白名单」。
第三步:在「Referer白名单」输入框中,逐行填写允许访问的域名,例如:
https://example.com
https://*.mycompany.com
http://localhost:8080(开发调试时可临时加入)
【注意:不填任何域名 = 允许所有Referer访问,等于没开防盗链】
第四步:勾选「空Referer允许访问」——若你希望浏览器直接输入URL或App内WebView访问也能成功,必须勾选此项;否则空Referer请求会被拒绝返回403。
第五步:点击「保存」。配置立即生效,无需重启或等待缓存刷新。
通过CDN层叠加Referer+Token双重校验
当你已将TOS作为源站接入火山引擎CDN时,可在CDN控制台补充更严格的防盗链策略,防止Referer伪造。
方法一:Referer二次校验
进入CDN控制台 → 找到对应加速域名 → 「访问控制」→「Referer防盗链」→ 启用并配置与TOS一致的白名单规则。CDN会在回源前拦截非法Referer,避免无效请求打到TOS源站。
方法二:时间戳签名防盗链(推荐用于视频/下载链接)
在CDN「访问控制」→「URL鉴权」中启用鉴权模式A或B,生成带时间戳和MD5签名的加密URL,例如:
https://cdn.example.com/video.mp4?Expires=1722854400&OSSAccessKeyId=xxx&Signature=yyy
【关键点:签名密钥必须与CDN配置完全一致,且过期时间不宜超过30分钟,否则用户分享链接会快速失效】
该URL只能由你服务端动态生成,盗链者即使拿到也无法构造有效签名。
使用预签名URL实现一次性安全外链
适合需要临时共享敏感文件、又不想开放公共读权限的场景,比如后台导出报表后发给指定人员。
第一步:调用TOS SDK(Python/Java/C++等)的 generate_presigned_url 方法。
第二步:传入参数:bucket_name、object_key、expiration(单位秒,建议≤3600)、method='GET'。
第三步:SDK返回一个含签名、过期时间、Credential等参数的完整URL,形如:
https://bucket-name.tos-cn-beijing.volces.com/report.xlsx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600&X-Amz-Signature=...
这个链接在过期前可直接浏览器打开,过期后自动返回403;每次调用生成的签名都不同,无法复用。











