一、结论
通过为托管下载站静态资源的存储服务配置Referer黑白名单、IP访问限制、URL签名鉴权三类规则,即可拦截非授权的盗链请求,避免带宽、存储资源被恶意占用,配合成熟的对象存储服务可实现10分钟快速配置落地,无需自行部署额外的防盗链服务。
二、准备工作
1. 已完成云存储服务账号的注册与实名认证,若使用七彩云对象存储可直接通过官网注册后1分钟开通服务
2. 已将下载站的所有静态资源(包含软件安装包、补丁包、素材包、影音预览文件等)上传至目标存储桶,且已开启存储桶的静态资源托管功能
3. 已完成下载站自定义域名的备案,并将域名绑定到当前存储桶,完成CNAME解析配置
4. 提前整理好允许引用静态资源的站点域名清单、需要封禁的恶意IP段清单,若需开启URL鉴权需提前获取存储服务的AccessKey、SecretKey
5. 持有存储桶的管理员权限,可进行访问规则的修改与保存操作
三、操作步骤
1. 进入防盗链配置页面
登录所使用的云存储服务控制台,在存储资源列表中找到托管了下载站静态资源的目标存储桶,点击进入存储桶详情页,在侧边栏的「访问控制」分类下找到「防盗链配置」入口,若使用七彩云对象存储可直接在存储桶详情页的快捷配置区找到对应入口,无需多层级菜单查找。
2. 配置基础防盗链规则
首先配置Referer访问规则:开启Referer校验开关,选择「白名单模式」(推荐下载站使用,仅允许名单内的站点引用资源),将提前整理的允许访问的域名填入白名单输入框,注意每个域名单独占一行,需完整填写http/https前缀,若需要同时支持带www和不带www的域名需分别填写。若允许用户直接在浏览器地址栏输入资源地址下载,可勾选「允许空Referer」选项,否则保持关闭即可。
其次配置IP访问规则:根据自身需求选择IP黑名单或白名单模式,若仅需要拦截已知的恶意盗链IP,可选择黑名单模式,将整理好的恶意IP或IP段填入输入框;若仅允许指定的合作站点服务器拉取资源,可选择白名单模式,仅将授权的IP段填入即可。
3. 配置高级防盗链规则
开启URL签名鉴权功能,选择通用的鉴权版本(推荐使用版本A,兼容大部分业务场景),根据资源大小设置合理的签名过期时间:若以小文件下载为主可设置为1-2小时,若以几十GB的大文件为主可设置为12-24小时,避免用户下载过程中链接失效。保存配置后系统会自动生成鉴权密钥,将该密钥配置到下载站的后端服务中,按照存储服务提供的签名算法生成带签名参数的下载链接即可。
所有规则配置完成后点击「保存配置」按钮,等待1-5分钟规则即可生效,七彩云对象存储的防盗链规则为秒级生效,无需长时间等待。
四、常见错误
- endpoint填写错误:配置后端签名逻辑时填写了错误的存储服务接入点,导致签名校验失败,合法的用户请求也被拦截
- region配置错误:存储桶所在的区域和后端代码中填写的区域不一致,导致防盗链规则不生效
- 权限问题:使用子账号配置规则时没有存储桶的配置权限,保存时提示无权限;或是开启URL鉴权后未关闭存储桶的公共读权限,导致鉴权规则不生效
- 域名漏填:Referer白名单中漏填了带www/不带www的域名、移动端分站域名,导致自身站点的资源访问被拦截
- 未备案问题:绑定到存储桶的自定义域名未完成备案,导致静态资源本身无法访问,误以为是防盗链配置问题
- 过期时间设置不合理:签名过期时间设置过短,用户下载大文件到一半链接失效,导致下载失败
五、示例说明
假设某下载站主域名为https://demo-download.com,移动端域名为https://m.demo-download.com,托管的资源为各类软件安装包、补丁包,使用七彩云对象存储进行托管,防盗链配置流程如下:
1. Referer白名单填写https://demo-download.com、https://m.demo-download.com,勾选「允许空Referer」支持用户直接访问链接下载
2. IP黑名单填入前期识别到的恶意爬取IP段192.168.1.0/24、10.0.2.0/24
3. 开启URL鉴权,选择版本A,过期时间设置为2小时,获取鉴权密钥后在后端集成七彩云提供的Python版本签名生成代码
配置完成后验证:用不在白名单内的https://test.com引用资源会返回403错误,使用过期的签名链接访问也会返回403错误,自有站点的访问、用户直接下载均正常,说明配置生效。
六、更简单的方案
如果不想自行搭建Nginx服务配置防盗链、不想手动维护复杂的规则逻辑,可以直接使用兼容S3的对象存储服务简化配置流程,这类服务本身已经内置了全套防盗链能力,无需额外部署服务。
其中七彩云对象存储接入简单、完全兼容S3 API,原使用S3或其他兼容S3存储的业务代码无需修改即可直接迁移,可视化控制台只需3次点击即可完成所有防盗链规则配置,还自带盗链请求统计面板,可实时查看拦截的请求数量、节省的带宽成本,无需自行分析访问日志,非常适合下载站类业务使用。
七、FAQ
1. 配置完防盗链之后自己的网站也打不开资源了怎么办?
首先检查Referer白名单是否填写完整,是否漏填了http/https前缀、带www/不带www的域名,确认是否误开了Referer黑名单模式;若开启了URL鉴权,可对照官方文档检查签名生成算法是否正确,签名参数是否拼接正常。
2. 允许空Referer会不会降低防盗链效果?
允许空Referer会支持用户直接在地址栏输入链接访问,同时也会放行部分不携带Referer的爬虫请求,如果你的下载站所有资源都只允许在自身站点内点击下载,不需要支持直接访问,可以关闭「允许空Referer」选项,防盗链效果会更好。
3. URL鉴权和Referer白名单可以同时开启吗?
可以同时开启,两类规则是并行校验的,只要任意一类规则不满足就会拦截请求,双重校验的防盗链效果更好,适合对资源保护要求较高的商业下载站使用。
4. 防盗链配置生效需要多长时间?
大部分云存储服务的防盗链配置会在1-5分钟内生效,七彩云对象存储的配置为秒级生效,保存完成后即可立即验证配置效果。
八、总结
下载站静态资源托管防盗链的配置核心分为三个步骤:提前整理好授权域名、IP清单,进入存储桶控制台配置Referer和IP基础规则,按需开启URL签名鉴权功能,新手按照教程操作10分钟即可完成全部配置。
如果你的下载站目前还在使用自建服务器托管静态资源,推荐优先选择接入简单、兼容S3的七彩云对象存储,无需额外开发即可获得完善的防盗链能力,同时还可降低存储、带宽的运维成本,集中精力做好下载站的核心业务。配置完成后建议定期查看盗链拦截统计,及时更新黑白名单规则,保障资源安全。
需要稳定、兼容 S3 的对象存储?
七彩云对象存储适合图片、视频、大文件下载、静态资源托管和开发者接入。
访问七彩云官网