OSS防盗链怎么设置?

把图片和文件存到OSS后,很多站长会遇到一个头疼的问题:辛苦上传的图片被其他网站直接盗链使用,白白消耗自己的流量和费用。OSS提供了防盗链功能,可以有效阻止未授权的访问。本文将详细讲解两种防盗链方案的配置方法,帮你保护好自己的存储资源。

立即了解 阿里云对象存储 OSS

查看详细配置、价格和使用指南

访问官方页面 →

为什么需要设置防盗链?

如果不设置防盗链,你的OSS资源可能面临以下风险:

风险类型具体表现造成的损失
流量费用暴增其他网站直接引用你的图片URL每月多花几百到几千元流量费
带宽被占用大量盗链请求消耗OSS带宽自己网站访问速度变慢
内容被盗用原创图片、视频被无授权使用版权和SEO权重受损
安全风险恶意爬虫批量下载资源存储成本增加,数据泄露风险
⚠️ 真实案例

某图片站因为没设置防盗链,被一个流量大站盗用了首页图片,一个月流量费暴涨到3000元,远超正常水平的10倍。设置防盗链后,流量费恢复到正常的300元/月。

方案一:Referer白名单(推荐新手使用)

Referer防盗链是最简单常用的方案,通过检查请求来源域名来判断是否允许访问。

  1. 登录OSS控制台:进入对应的Bucket,找到「权限管理」→「防盗链」设置页面。
  2. 添加Referer白名单:填入允许访问的域名,如 *.yourdomain.com,支持通配符匹配子域名。
  3. 选择是否允许空Referer:如果需要支持直接在浏览器地址栏访问图片,建议允许空Referer;如果完全禁止外部访问,选择不允许。
  4. 保存配置:配置立即生效,无需重启或等待,可以立即测试效果。
Referer白名单配置示例
  • 白名单域名: *.yourdomain.com, yourdomain.com
  • 允许空Referer: 是(兼容APP和部分浏览器)
  • 生效时间: 立即生效
  • 适用场景: 网站图片、CSS/JS静态资源
💡 注意事项

Referer可以被伪造,安全性不是100%,但对于普通的盗链拦截已经足够。如果需要更高安全性,建议搭配URL鉴权方案一起使用。

方案二:URL鉴权(推荐重要文件使用)

如果是私密文件、付费内容或需要更高安全性的场景,建议使用URL鉴权(签名URL)方案。

对比项Referer白名单URL鉴权
安全性中等(可被伪造)高(基于密钥签名,无法伪造)
配置复杂度简单(控制台点击配置)较复杂(需要代码生成签名)
链接有效期永久有效可设置过期时间(如1小时)
适用场景公开图片、静态资源付费内容、私密文件、临时下载链接

URL鉴权的核心原理:在URL中加入签名参数,签名基于AccessKey和过期时间计算,服务器验证签名是否有效再决定是否返回文件。

URL鉴权典型使用场景
  • 付费视频: 生成1小时有效的播放链接
  • 私密文档: 仅登录用户可访问,链接30分钟过期
  • 临时下载: 生成一次性下载链接,用完即失效
  • 实现方式: 调用OSS SDK的签名URL接口

两种方案如何选择?

根据你的文件类型和安全需求,选择合适的防盗链方案:

✅ 用Referer白名单的场景

  • 公开的网站图片、Logo、静态资源
  • 不需要频繁生成临时链接
  • 技术能力有限,希望简单配置
  • 主要防止其他网站盗链引用

❌ 需要用URL鉴权的场景

  • 付费内容(视频、电子书、软件)
  • 用户隐私文件(身份证、合同)
  • 需要精确控制访问时间和次数
  • 对安全性要求极高的业务
💡 组合方案建议

大部分网站可以两种方案组合使用:公开的静态资源(图片、CSS、JS)用Referer白名单,简单省心;涉及用户隐私或付费的内容用URL鉴权,安全性更高。这样既能防止盗链,又不会给正常访问增加太多复杂度。

常见配置错误和排查方法

设置防盗链后如果出现访问异常,可以按以下步骤排查:

问题现象可能原因解决方法
自己网站图片也打不开白名单域名没写全或格式错误检查域名格式,确保包含www和非www版本
APP端图片无法显示APP请求没有Referer开启「允许空Referer」选项
CDN加速后图片失效CDN回源请求Referer与配置不匹配在白名单中加入CDN回源域名
URL鉴权链接立即失效服务器时间不同步导致签名过期校准服务器时间,使用NTP同步
⚠️ 排查建议

配置防�90链后,务必在自己的网站上全面测试一遍,包括电脑端、手机端、APP端访问。避免因为配置错误导致自己的用户也无法正常访问图片和文件。

开始使用

如果你对 阿里云对象存储 OSS 感兴趣,可以访问官方页面查看详细配置和价格信息。

查看详细信息 →

常见问题

设置防盗链后会影响百度收录吗?

如果配置正确,不会影响收录。需要在Referer白名单中加入百度搜索引擎的爬虫域名(如baidu.com),或者选择「允许空Referer」,这样百度爬虫抓取图片时不会被拦截。

Referer防盗链能100%防止盗链吗?

不能。Referer是可以被伪造的,技术能力强的盗链者可以绕过Referer检测。但对于90%以上的普通盗链场景已经足够有效。如果需要更高安全性,建议搭配URL鉴权方案。

URL鉴权链接过期后还能访问吗?

不能,链接过期后会返回403拒绝访问错误。这正是URL鉴权的核心价值:可以精确控制文件的访问时效,适合付费内容和临时下载场景,避免链接被无限制传播使用。

设置防盗链需要额外付费吗?

不需要。OSS的防盗链功能是免费的基础功能,包含在OSS服务中,无需额外付费。只需在控制台简单配置即可使用,性价比很高,建议所有OSS用户都开启防盗链保护。

总结

OSS防盗链是保护存储资源、控制流量成本的重要手段。对于公开的网站图片和静态资源,Referer白名单配置简单,几分钟就能设置好,能拦截绝大部分盗链行为。对于付费内容或隐私文件,建议使用更安全的URL鉴权方案,精确控制访问时效。两种方案可以组合使用,兼顾安全性和易用性。设置完成后务必全面测试,确保不影响自己网站和APP的正常访问。