一、先分清防盗链防的是什么

"防盗链"这个词容易被理解为单一功能,实际对应三类不同风险,防护手段也不同:

风险典型表现损失
流量盗用 你的播放地址被嵌到第三方页面/小程序 CDN 流量费按你的账单走,月底费用暴涨
内容盗播 付费课程、内部会议地址被转发到外部 内容资产泄露,付费模式失效
推流劫持 推流地址泄露,别人向你的频道推画面 最严重:直播画面被替换成任意内容

三道防线分别对准这三类风险,缺一道就留一个口子。

二、三道防线的设置清单

防线设置项(主流云直播平台均支持)对准的风险
推流端保护 推流地址启用鉴权(带时间戳签名);按场次生成新地址;发放范围限定到指定设备与人 推流劫持
播放地址防盗链 签名 URL(时间戳 + 密钥);Referer 黑白名单;UA 名单;IP 黑名单 流量盗用 + 内容盗播
内容级保护 登录/观看码校验;HLS 分片加密;动态水印(观看者身份);下载权限控制 内容盗播(高价值内容)

中小场次做到前两道即可覆盖绝大多数风险;付费课程、药企学术内容、涉密内部会建议三道全开。

三、签名 URL(鉴权地址)的原理与参数设置

签名 URL 的核心逻辑:地址后面附加一个过期时间 + 签名值,签名由"文件路径 + 过期时间 + 密钥"计算得出(通常是 MD5)。密钥只在你和平台之间,别人拿到地址后无法伪造新签名,过期后地址自动失效。

两个参数决定防护强度:

  • 过期时间:单场直播建议 4–12 小时(覆盖直播全程 + 提前进场缓冲);回放按业务 24 小时到 7 天。设一年等于没设。
  • 密钥保管:主密钥泄露 = 整个域名防盗链失效。密钥只在后台配置,不写进页面代码、不发群、不进文档。怀疑泄露立即更换。

验证方法很简单:把一个签名地址拿到无痕浏览器打开确认能播,等过期后再打开确认 403。两步通过,防盗链才算真的在工作。

四、6 条最常见的错误(按出现频率排序)

错误后果与正确做法
1. 签名有效期设成一年/永久防盗链形同虚设。按场次设 4–12 小时
2. 带签名的播放地址直接发群/发公众号地址随转发扩散无法撤回。发直播间入口链接,由服务端动态下发短时效地址
3. 推流地址长期复用一次泄露永久可用。按场次生成、用完即废
4. 只设 Referer 名单当唯一防线部分播放器不发 Referer,既挡不住专业盗用也容易误伤。作为辅助手段
5. 回放文件用可猜测的裸 URL例如 /record/2026/01.mp4,遍历即可下载。回放同样走签名 + 权限校验
6. 开了防盗链不做过期验证配置错误未被发现(如时间戳取错单位),地址永远有效或永远 403。上线前做两步验证

五、录制文件与回放的保护

直播结束不等于风险结束,录制文件是更容易被忽视的泄密点:

  • 回放入口收敛:回放统一走带权限校验的播放页,不直接暴露对象存储的文件地址。对象存储桶设为私有读,禁止公开列举。
  • 回放链接时效:内部培训类回放设 7 天有效并要求登录;对外公开回放可以放宽,但保留随时下架的能力。
  • 动态水印:高价值内容在播放页叠加观看者姓名/手机号水印。真发生录屏外泄时可以定位到人,威慑效果远大于技术防录屏。
  • 合规提醒:医疗、金融类内容涉及患者/客户隐私,录制文件的访问与留存周期要符合内部合规要求,权限最小化。

六、开播前 10 分钟安全检查清单

  1. 本场推流地址是新签发的,且只有推流设备和 2–3 名技术人员持有
  2. 播放地址签名有效期覆盖直播全程,无永久签名
  3. 对外发放的是直播间入口链接,不是裸播放地址
  4. Referer/IP 名单变更已在本场生效(改过配置要确认)
  5. 回放策略已确认:链接时效、是否需要登录、水印开关
  6. 平台方安全/应急联系人已存进手机