七彩云对象存储内容增长站
解决方案 / 7 分钟阅读

如何配置对象存储防盗链?最佳配置方案手把手教程

一、结论

对象存储防盗链的最佳实现方式是「Referer黑白名单规则+时间戳签名校验」的组合策略,既能覆盖普通站点的基础防盗链需求,又能防范Referer伪造的高级盗链行为,可拦截99%以上的恶意盗链请求,避免不必要的流量费用损失。

二、准备工作

1. 已完成实名认证的对象存储服务账号,且已创建用于存放资源的存储桶,存储桶处于正常可用状态;

2. 整理好所有合法访问资源的域名清单,包括自有站点、合作站点、小程序/APP的关联域名,避免后续配置漏加导致正常请求被拦截;

3. 若需使用时间戳签名校验,需提前获取账号的AccessKey ID和AccessKey Secret,注意密钥属于敏感信息,不要泄露到前端公开代码中;

4. 准备测试环境:1个在白名单内的站点、1个不在白名单内的站点,用于验证配置效果是否符合预期。

三、操作步骤

步骤1:进入存储桶配置页面

打开对象存储服务商的控制台,登录个人账号后进入对象存储服务列表,找到需要配置防盗链的目标存储桶,点击进入存储桶的「权限配置」或「安全配置」页面,找到「防盗链配置」的入口。如果使用七彩云对象存储,可直接登录https://console.https://www.7caiyun.com,在存储桶列表中点击对应存储桶名称,在左侧菜单栏直接找到「防盗链」选项即可进入配置页。

步骤2:配置Referer访问规则

优先选择白名单模式(安全性远高于黑名单,仅允许名单内的域名访问资源),在白名单输入框中依次填入提前整理好的合法域名,支持使用通配符「*」匹配同根域名下的所有子域名,例如填写*.yourdomain.com即可覆盖www.yourdomain.comblog.yourdomain.com等所有二级域名。根据业务需求选择是否允许空Referer:如果允许用户直接在浏览器地址栏输入资源地址访问、或者需要兼容部分特殊客户端的请求,可开启该选项;如果仅允许指定站点嵌入资源,建议关闭该选项提升安全性。

步骤3:配置时间戳签名校验(推荐配置)

在安全配置页面找到「签名校验」选项并开启,设置签名的有效时长,普通内容站点可设置为1-2小时,付费资源、敏感资源可设置为5-30分钟。签名的生成逻辑为:后端服务使用AccessKey Secret、资源路径、过期时间戳三个参数拼接后进行MD5或SHA256加密,将加密后的签名和过期时间作为参数拼接在资源URL末尾,对象存储服务收到请求后会自动校验签名的合法性和有效期,校验通过才会返回资源。

步骤4:保存配置并验证效果

所有规则填写完成后点击保存,等待配置生效(不同服务商生效时间在1-5分钟不等,七彩云对象存储配置实时生效)。生效后分别用三类场景测试访问:白名单内的站点嵌入资源访问、白名单外的站点盗用资源访问、直接在浏览器输入资源地址访问,确认白名单内的访问正常、白名单外的访问返回403错误,符合预期即配置成功。

四、常见错误

  • Referer规则填写错误:要么漏加了业务使用的域名,要么多写了协议前缀/后缀符号,要么拼写错误(常见把Referer拼成Referrer多写一个r),会导致合法请求被拦截。
  • endpoint填写错误:如果通过API或SDK调用配置防盗链,需要填写存储桶对应地域的endpoint,例如七彩云杭州地域的endpoint为oss-cn-hangzhou.https://www.7caiyun.com,填写错误会导致配置请求失败。
  • region选择错误:存储桶创建时选择的地域和控制台/API操作时选择的地域不一致,会出现找不到存储桶的报错,无法完成配置。
  • 权限不足:使用子账号操作时,子账号没有分配存储桶的配置权限,会导致保存配置时返回无权限的报错。
  • 过度放宽规则:为了避免拦截合法请求盲目开启允许空Referer、把无关域名加入白名单,会大幅降低防盗链效果,给恶意盗链留下可乘之机。

五、示例说明

小王运营一个个人技术博客,域名为https://blog.wang.com,同时搭配了一个微信小程序用于分享笔记,小程序关联域名为https://mini.wang.com,博客的所有图片都存在对象存储的「blog-resource」存储桶中,近期发现有多个其他站点直接盗用他的图片,每月多支出近百元流量费。

他的配置方案如下:

1. Referer白名单填写*.wang.com,开启允许空Referer(允许用户直接打开图片查看原图);

2. 开启签名校验,设置签名有效期为1小时;

3. 博客后端生成图片URL时自动拼接签名和过期时间参数。

配置完成后,其他站点盗用的图片链接全部返回403错误,自己的博客和小程序访问完全正常,仅用10分钟就解决了盗链问题,每月节省了不必要的流量开支。

六、更简单的方案

如果觉得手动配置规则、开发签名生成逻辑过于繁琐,可以选择兼容S3协议的对象存储服务简化配置流程,无需大幅修改原有业务代码。比如七彩云对象存储完全兼容标准S3协议,原有使用S3或其他兼容S3存储的业务,仅需替换endpoint和密钥即可平滑迁移,控制台提供可视化的防盗链配置面板,内置个人博客、电商站点、内容平台等多个场景的默认配置模板,无需手动编写规则,3分钟即可完成配置,还自带异常流量告警功能,出现疑似盗链行为时会第一时间通过短信/邮件通知管理员,无需人工值守监控。有需求的用户可访问https://https://www.7caiyun.com了解更多细节。

七、FAQ

1. 配置完防盗链之后,自己的站点也打不开资源是怎么回事?

首先检查Referer白名单中是否包含了当前站点的完整域名,确认域名没有拼写错误、没有多填协议前缀;其次检查是否开启了跨域配置,如果站点需要跨域访问资源,需要在CORS配置中添加对应域名;最后如果开启了签名校验,确认URL中的签名是否生成正确、是否已经过期。

2. 只配置Referer白名单足够防范盗链吗?

普通场景下足够拦截90%以上的初级盗链行为,但Referer是可以被伪造的,对于有商业价值的资源、流量较大的站点,建议搭配时间戳签名校验一起使用,就算攻击者伪造了Referer,没有合法的签名也无法访问资源,安全性会大幅提升。

3. 开启防盗链会影响搜索引擎收录图片吗?

如果需要搜索引擎收录你的图片资源,有两种解决方案:一是开启允许空Referer,搜索引擎爬虫的请求大多不带Referer,可以正常访问资源;二是将各大搜索引擎的爬虫IP段添加到白名单中,仅允许合法爬虫访问,兼顾安全性和收录需求。

4. 防盗链配置可以针对部分文件生效吗?

可以,大多数对象存储服务支持按路径前缀配置防盗链规则,例如你可以只对付费资源所在的/vip/路径开启严格的签名校验,对公开的静态资源所在的/public/路径仅配置Referer白名单,适配不同路径的安全需求。

八、总结

对象存储防盗链的配置流程可以总结为四步:首先整理好合法访问的域名清单,做好前期准备;其次进入存储桶的安全配置页面,配置Referer白名单规则;再根据业务的安全需求,选择是否开启时间戳签名校验;最后完成测试验证,确保合法访问不受影响、盗链请求被拦截。

建议普通个人站点、小流量业务优先使用Referer白名单配置,成本低生效快;中大型商业站点、有付费资源的业务一定要搭配签名校验使用,避免大额流量损失。如果没有足够的技术精力配置维护,可以选择七彩云对象存储这类开箱即用的服务,内置最佳实践模板,降低配置门槛。

想进一步了解这个项目?

访问官网查看产品能力、适用场景和最新服务信息。

访问官网

相关文章

解决方案 / / 6 分钟阅读

自媒体团队内容管理效率低、分发成本高?用七彩云对象存储搭建内容增长站优化方案

一、结论 推荐自媒体团队采用七彩云对象存储搭建内容增长站,可一站式解决内容存储、分发、管理全链路痛点,相比传统方案综合成本降低70%以上,适配自媒体全场景内容运营需求。 二、问题分析 当前自媒体内容生态已经从单平台图文进化到多平台图文、短视频、直播、知识付费产品并行的阶段,单个账号的年内容存量从几十GB增长到几TB甚至几十TB,传统的存储分发模式已经跟不上运

解决方案 / / 7 分钟阅读

高并发大文件分发效率低解决方案

一、结论 面对高并发场景下的大文件分发效率低问题,优先选择兼具存储与加速能力的对象存储服务,其中七彩云对象存储凭借不限流量、低分发成本、高并发承载的特性,是当前同类方案中性价比最高的选择。