阿里云防盗链Referer白名单和时间戳鉴权,该选哪种

账单上的 CDN 流量突然涨了一截,日志里的业务量却没有对应增长,很多团队都遇到过这种情况。多数时候,是别人的网页直接引用了你的图片或视频地址,带宽成本悄悄转到了你的账户上。阿里云防盗链就是为这类问题准备的。配置得当,可以把非法引用挡在外面,正常用户几乎感觉不到。

阿里云防盗链Referer白名单和时间戳鉴权,该选哪种

盗链通常从哪里来

盗链的做法并不复杂。别人的页面里写上你的资源地址,比如图片的 src 或视频的 source 指向你的 CDN 域名或 OSS 地址,用户打开那个页面时,浏览器就直接去你的服务器拉文件。对方不用存储任何内容,流量和费用却都算在你头上。

实际遇到的来源大致有三类。一是采集站和内容聚合站,它们会批量抓取页面里的图片和视频地址。二是论坛、问答社区里的第三方引用,有人复制了一段带地址的代码,却不知道这会产生费用。三是测试环境或旧版本页面,它们还指向线上资源,产生了一些没人需要的访问。第三类最容易被忽略,它没有恶意,只是没人记得清理。

Referer 白名单怎么配

Referer 是 HTTP 请求头里的一个字段,记录了请求是从哪个页面发出的。阿里云 CDN 和 OSS 都支持基于 Referer 的访问控制,思路很直接:只放行来自指定域名的请求,其余请求返回 403,或者返回一张替代图片。

配置时有几个地方需要想清楚:

  • 白名单域名:把官网、移动端站点和必要的合作方域名填进去,支持通配符,比如 *.example.com。漏掉一个移动端域名,最先出问题的通常是那里的图片。
  • 是否允许空 Referer:直接在地址栏打开、部分浏览器的隐私设置、部分客户端的请求,都可能没有 Referer。允许空 Referer,防护会弱一些;禁止它,又可能误伤正常用户。要不要放行,取决于你的访问路径里有多少这类请求。
  • 黑名单模式:如果只有少数几个站点明确有问题,可以直接拉黑,不必开放一整张白名单。这种方式适合内容本身比较公开、不方便限定来源的场景。
  • 拦截后的返回:返回 403 最省事,也最省资源。返回一张提示图对品牌展示更友好,但每次拦截都会产生一次图片回源,量大时要算一下。

Referer 能挡住的是大多数不设防的盗链,但挡不住有心伪造请求头的人。所以它更像第一道门,后面还需要其他手段配合。

时间戳鉴权:让链接只在有效期内可用

如果资源是付费课程视频,或者需要限时访问的文件,光靠 Referer 就不够了。时间戳鉴权的做法是给每个资源地址附加一段签名参数,签名里包含过期时间、随机数、用户标识和哈希值。CDN 节点收到请求后,会校验签名是否正确,链接有没有过期。

一个典型的鉴权地址大致是这样的:

https://cdn.example.com/video/lesson01.mp4?auth_key=时间戳-随机数-用户标识-哈希值

哈希值由服务端根据文件路径、时间戳、随机数和密钥计算得出。密钥只存在服务端,前端拿不到,外部用户即使复制了链接,也没办法自己算出新的有效签名。链接过期之后,被转存出去的地址也就失效了。

实际部署时,签名最好由业务服务端在用户登录并通过权限校验之后动态生成,而不是把一个长期有效的地址写死在页面里。有效期设成满足播放需要的最短时长就够了。视频一般设置为几十分钟到几个小时,图片展示的时效可以按页面停留时间来定。

OSS 场景下的签名访问

资源直接放在对象存储 OSS 里时,也可以用签名 URL 达到类似效果。OSS 支持为 Bucket 中的对象生成带过期时间的访问地址,同时还能叠加 Bucket 级别的 Referer 白名单,两层一起用。

这里有两点需要特别留意。第一,如果 Bucket 设置成了公共读,任何人都能直接访问对象,前面的配置都会失效,所以敏感资源应保持私有读。第二,签名用的 AccessKey 要管好。建议使用 RAM 子账号,只授予必要的权限。长期密钥一旦泄露,影响面会比单个链接大得多。

一个假设的落地过程

设想一家在线教育团队,课程视频直接通过 CDN 域名对外播放。某段时间里,流量费用的涨幅明显超过了课程销量的增长。翻访问日志时,他们发现大量请求的 Referer 指向几个第三方学习资料站,这些站点用 iframe 或直接引用的方式播放了他们的视频,既没有付费,也几乎没有带来转化。

这类情况下,比较顺的处理顺序大致是这样:先在 CDN 控制台开启 Referer 白名单,只保留官网、App 内嵌 H5 页面和测试域名,空 Referer 暂时不放行;再让业务后端为视频动态签发时间戳鉴权链接,有效期设为两小时,足够覆盖一次正常观看;最后把原有的静态地址统一替换掉,并在日志里盯着被拦截请求的比例。

这样改之后,异常来源的请求通常会明显减少。但也要预期一个小插曲:部分旧版本 App 可能因为缓存了老地址而加载失败。这时可以给一个过渡期,允许旧版本在一段时间内继续以空 Referer 访问。防盗链策略的上线,要看客户端版本分布,只改服务端配置是不够的。

落地时的几条建议

  1. 先开启日志和监控,弄清盗链流量主要来自哪里,再决定防护强度。没有数据就直接收紧,很容易误伤正常用户。
  2. 先在测试域名或访问量低的资源上验证,确认拦截规则和播放流程都正常,再逐步扩大范围。
  3. 区分公开资源和敏感资源。公开图片用 Referer 策略就够了;付费内容则要叠加时间戳鉴权,并使用私有读。
  4. 定期清理白名单。合作方下线后,对应域名应及时移除;新渠道接入时,记得补上配置。
  5. 签名密钥放进密钥管理体系,定期轮换,不要写进前端代码。

结语

阿里云防盗链更像一套组合,Referer 白名单、时间戳鉴权和存储权限各管一层。选哪种,主要看资源值不值钱、用户从哪里进来,以及团队有没有精力维护。先把思路理清,再根据日志慢慢调整,带宽成本才能控制住,正常用户的访问也不会受影响。

赞 (0)
阿里云个人邮箱登陆入口在哪,手机上怎么设置收信
上一篇 2026年11月1日 上午3:22
阿里巴巴云客服招募要看哪些条件?应聘前需要准备什么?
下一篇 2026年11月1日 上午3:23

相关推荐

  • 阿里云计算怎么选?按业务规模和预算对照着看

    很多团队推进数字化时,迟早会碰到几个具体问题:业务系统放在哪里跑,数据怎么存,大促或高峰期扛不扛得住。阿里云计算是国内用户较多的云服务之一,产品线从基础算力一直延伸到大模型服务,种类多,名词也多,刚接触容易挑花眼。这篇先把主要产品理一理,再说说怎么结合自己的业务规模和预算去选。 一、云计算解决的是什么问题 传统做法是自建机房,买服务器、搭网络、配运维。前期投…

    2026年11月1日
  • 阿里云 API 签名怎么算,调用报错先查这几处

    很多人第一次调用阿里云 API 时,卡住的常常是返回的“签名错误”。密钥明明没问题,请求却被拒绝,最后查出来可能只是服务器时间慢了几秒,或者查询字符串的顺序没排对。这篇文章先说签名要解决什么问题,再用查询 ECS 实例的例子走一遍流程,最后讲报错时该先看哪几处。 签名到底在防什么 OpenAPI 开放在公网上,拿到请求的人可以尝试改参数,也可以把请求原样重放…

    2026年11月1日
  • 阿里云微商城怎么搭?中小商家低成本上线要注意什么

    这两年,做本地生活、茶叶、服饰和食品的小商家普遍碰到一个麻烦:平台流量越来越贵,抽成和推广费一年比一年高,买家买完就走,下次想再找你还得去平台上翻。于是不少人开始考虑自己搭一个微商城,把客户留在自己手里。阿里云微商城这类方案,就是为这种“有渠道、没阵地”的情况准备的。 简单说,阿里云微商城就是把商品展示、下单支付、会员管理和订单处理放进一套跑在阿里云基础设施…

    2026年11月1日
  • 阿里云盾能防什么攻击?中小企业上云后怎么配

    企业把业务搬到云上以后,网站、接口和数据库的入口都直接暴露在公网。机房时代,很多服务只对内网开放,攻击者要先穿过几层网络边界。上云之后,这层边界变薄了,攻击面比以前大得多。阿里云盾是阿里云为云上资源提供的一组安全防护服务,主要覆盖流量清洗、应用层防护、安全监控和数据保护。这篇文章先说明它包含哪些能力,再用三个场景讲怎么配。 阿里云盾包含哪些能力 阿里云盾由几…

    2026年10月31日
  • hdp阿里云怎么部署,ECS自建和EMR托管差在哪

    HDP(Hortonworks Data Platform)是基于Apache Hadoop的大数据平台,常见组件包括HDFS、YARN、Hive、Spark和HBase。不少企业在本地机房跑了好几年HDP集群,业务涨起来以后,机房扩容排期长,服务器用几年就要换,运维人手也紧。这时很多团队会想把HDP搬到阿里云上,用云上的弹性资源来压成本。 有个背景要先提一…

    2026年11月1日
返回顶部