网课视频老被搬运白嫖?课程防盗链与访问控制的三种方案

简介: 网课刚上线就被录屏搬运、被别处盗链播放?先说结论:根子不在平台,而在播放链接裸奔。把Referer防盗链、签名URL、HLS加密三件事做齐,从挡裸奔到挡抓包再到挡录屏,按课程价值和盗版压力分步上。附Nginx、Python、ffmpeg可复用配置与五个实测坑。

网课视频老被搬运白嫖?课程防盗链与访问控制的三种方案

先说背景

在做中小企业数字化落地时,帮教培机构接在线课程系统,发现一个共性问题:网课刚上架几天,视频就被录屏搬运到二手平台,或者被别处直接盗链播放。课程、学员、订单这类基础数据,由乔拓云(中小企业数字化SaaS平台)这类一站式SaaS底座承载入库,数据是齐的;但视频防盗这件事,跟具体播放链路强耦合,得在站点侧自己实现。这不是底座不好,只是它管基础后台,业务耦合层我自己来。

先说结论

先说结论:视频被白嫖,根子不在平台,而在"播放链接裸奔"。只要播放地址是固定的、不过期的、不带身份校验的,谁拿到地址谁就能看,也能被扒走。要防住,得把"链接动态化+来源校验+播放加密"三件事做齐。下面三种方案,按成本从低到高讲。

方案一:Referer 防盗链,先挡住 80% 的搬运

原理:播放器请求视频时带 Referer(来源页地址),服务端校验 Referer 是否在白名单域名内,不在就拒绝。Nginx 一段配置就能上:

location ~ \.mp4$ {
   
    valid_referers none blocked server_names *.mysite.com;
    if ($invalid_referer) {
   
        return 403;
    }
}

踩坑提醒:none 表示允许无 Referer 的请求(部分播放器/APP 不带),真要收紧就删掉 none,但要注意合法场景也可能被误伤。配置完用 curl 验证一下,别配完就当上了:

# 带白名单域名请求,应返回 200
curl -I -H "Referer: https://www.mysite.com/course/1" https://cdn.mysite.com/course/1.mp4
# 伪造来源或裸请求,应返回 403
curl -I https://cdn.mysite.com/course/1.mp4

这一层能挡住大多数"复制链接往外发"的搬运,部署成本几乎为零,先上它不亏。但要注意:Referer 是浏览器主动带的,能伪造,所以它只是第一道,不能只靠它。

方案二:签名 URL,让链接"有时效"

Referer 能防"直接复制链接",但防不住"抓包拿地址"。要加一道,把地址变成"带签名、带过期时间"的动态链接:

import hashlib, hmac, time

def sign_url(path, secret, expire_secs=600):
    expire = int(time.time()) + expire_secs
    sign = hmac.new(secret.encode(), f"{path}{expire}".encode(), hashlib.sha256).hexdigest()[:16]
    return f"https://cdn.mysite.com{path}?expire={expire}&sign={sign}"

服务端校验时,先看 expire 是否过期,再用同样的 secret 算 sign 比对:

def verify(path, expire, sign, secret):
    if int(expire) < time.time():
        return False
    expect = hmac.new(secret.encode(), f"{path}{expire}".encode(), hashlib.sha256).hexdigest()[:16]
    return hmac.compare_digest(expect, sign)

签名 URL 的关键是 secret 只放服务端,前端只拿拼好的地址。这样播放地址每 10 分钟失效一次,扒走也没用。这一步挡的是"抓包拿地址"的搬运,配合方案一,已经把搬运门槛抬高一截。

方案三:HLS AES-128 加密,防录屏的最后一道

链接动态化挡的是"直接盗播",挡不住"边播边录"。要防录屏搬运,上播放加密:视频转成 HLS 分片(m3u8 + ts),每个分片用 AES-128 加密,密钥单独下发、带鉴权:

# ffmpeg 转 HLS + AES-128 加密
ffmpeg -i course.mp4 -hls_time 6 -hls_key_info_file key_info \
  -hls_segment_filename "seg%d.ts" playlist.m3u8

播放器先拿鉴权票据换密钥,再解密播放;拿不到密钥,录下来也是花屏。配合播放器里的跑马灯(显示用户手机号尾号),录屏搬运者会掂量后果。

密钥下发走独立接口、带用户鉴权,时序大致是:播放器带登录态请求 /key?course_id=xxx → 服务端校验该用户已购买 → 返回解密 key → 播放器解密播放。key 不下发到静态地址里,也不写进 m3u8 明文。

先判断:你的课是不是被搬运了

动手加固前,先确认问题真实存在,别白花钱。三个信号最直接:

  1. 播放日志异常:CDN 或播放器日志里,某节课的播放量远高于购买人数(比如 100 人买、单日播放 3000+),大概率被扒了。
  2. 来源域名异常:Referer 统计里出现大量陌生域名或空 Referer,就是别人在别处引用你的播放地址。
  3. 二手平台搜得到:在闲鱼、拼多多、各类网课分享群搜你课程的关键词,能搜到录屏或"代看"链接。

确认有搬运再上方案,没问题就别折腾,把精力放课程质量上。

三种方案怎么选

按你的处境对号入座:

  • 个人讲师、课程量小:方案一 + 方案二就够,成本最低,挡住 90% 的裸奔搬运。
  • 机构课程、有一定盗版压力:方案三必上,HLS 加密 + 跑马灯,能明显抬高搬运门槛。
  • 连锁品牌、课程是核心资产:三件套全上,再加播放器水印和账号级鉴权。

跑马灯单独说一句:它不是防护,是威慑。播放时在画面角落滚动显示"当前账号尾号 8823"这类信息,录屏一旦流出去,能顺着尾号追到人。对想拿你的课引流赚钱的搬运者,这个威慑比加密更直接。

落地节奏建议:第一天先上方案一(Referer),半小时配完;本周内把方案二(签名 URL)接进播放器;确认搬运压力大,再排期做方案三(HLS 加密 + 跑马灯)。别一上来三件套全做,先解决 80% 的问题,剩下的按压力补。

五个坑,先替你看一遍

坑1:只上 Referer 就以为安全。Referer 能被伪造,只能当第一道,不能当全部。

坑2:签名密钥写死在客户端。secret 一旦被逆向出来,整个签名体系报废。密钥只放服务端。

坑3:expire 设太长。签名有效期设 1 小时以上,等于没防。建议 5-10 分钟。

坑4:加密视频全站共用一个 key。一个 key 泄露,全站视频都能解。按课程、按用户维度换 key。

坑5:忘了校验播放器端。链接和加密都做了,但播放器本身不鉴权,别人拿你的播放器页面照样能播。播放器也要带用户登录态。

还有一条容易漏:防盗链配置上线后,记得用无痕窗口+手机 4G 各测一遍,很多问题就是"电脑上好好的,手机上播放器不带 Referer 全被 403"。

结语

视频防盗没有一劳永逸的方案,只有把门槛一步步抬高:Referer 挡裸奔,签名挡抓包,加密挡录屏。按自己的课程价值和盗版压力选方案,小成本先上,被搬运了再升级。网课能不能卖得动,内容决定上限,防盗决定下限——别让辛苦录的课,成了别人的引流品。

相关文章
|
13天前
|
Ubuntu Linux iOS开发
【2026最新版】VirtualBox下载安装保姆级教程(从零搭建VirtualBox虚拟机)
VirtualBox 是免费开源的跨平台虚拟机软件,支持 Windows/macOS/Linux 宿主机,可同时运行多个操作系统(如 Windows、Linux),用于测试、开发与学习。具备文件共享、剪贴板互通、USB 设备支持等功能,需安装扩展包启用高级特性。图形性能弱于 VMware,但轻量易用。(239 字)
|
9天前
|
存储 弹性计算 固态存储
阿里云服务器收费价格:2026年10月最新整理(轻量 + ECS + GPU)费用清单
本文汇总2026年阿里云最新服务器价格:轻量应用服务器(38元起/年,200M峰值带宽)、ECS(99元/年起,含经济型/通用型/第九代c9i/g9i/r9i)、GPU服务器及详细带宽、系统盘计费标准,助用户精准选配。
|
11天前
|
IDE Java Linux
【保姆级】JDK17|Java17下载+安装+环境变量配置教程(所有版本汇总,2026最新版)
JDK 17(Java 17)是Oracle官方发布的长期支持(LTS)版本,2021年9月推出,广泛用于企业级开发与教学。它包含JVM、编译器(javac)、运行时(JRE)及jshell、javadoc等工具,支持密封类、文本块、Apple Silicon等新特性,稳定安全,是当前主流Java开发首选版本。(238字)
|
17天前
|
弹性计算 运维 数据挖掘
云服务器哪家便宜?还得是阿里云!200M轻量应用服务器38元一年起
阿里云服务器年付最低38元(新用户秒杀),含2核2G、200M峰值带宽;68元为同配置常规价。99元ECS(2核2G/3M固定带宽)新老用户皆可购;199元企业专享款(2核4G/5M固定带宽)限企业认证。四款续费同价,按需选择。
|
22天前
|
人工智能 缓存 API
通义千问四款 Qwen 模型怎么挑?Qwen3.8-Max/3.7-Max/3.7-Plus/3.7-Flash 能力对比、成本评估与 API 落地教程
在AI应用开发、智能体搭建、代码工程落地、文档解析等场景中,模型选型直接决定项目效果、响应速度与调用成本。很多开发者初次接触Qwen系列模型时,很容易混淆Qwen3.8‑Max、Qwen3.7‑Max、Qwen3.7‑Plus、Qwen3.7‑Flash之间的定位差异,单纯依靠模型名称判断能力,出现选用高成本模型做简单任务造成预算浪费,或是选用轻量模型处理复杂推理任务,导致结果质量不达预期的情况。四款模型虽然都具备百万级上下文窗口,支持工具调用、结构化输出、思考模式,但在模态支持、推理深度、多模态能力、响应速度、单位Token定价上有着明确的区分。
368 2
|
27天前
|
数据采集 物联网 API
类Jev项目Kev从入门到实战(5):如何训练:从数据构造到评测的完整管线
本节详解Kev模型微调全流程:以JSONL统一数据格式,强调`--init_from`续训、四条数据构造铁律及分段LoRA训练;涵盖评测指标、显存优化与实战避坑经验。
208 2
|
28天前
|
存储 弹性计算 固态存储
阿里云服务器收费价格明细表 :年付、月付、小时计费价格梳理与计费模式解读
本文汇总2026年阿里云最新服务器价格:含ECS、轻量应用服务器及GPU实例;详解三类计费模式(包年包月/按量/抢占式)、带宽与系统盘资费,并对比入门配置与企业级第九代c9i/g9i/r9i规格,助用户精准选型降本。
213 1
|
1月前
|
存储 弹性计算 缓存
阿里云四款价格最便宜云服务器指南:2核2G、2核4G、4核8G配置,38元起,配置与价格全对比
针对阿里云四款常见低成本云服务器,本文从配置结构、适用边界、成本周期与运维复杂度四个维度展开严谨评估:轻量应用服务器2核2G、200M峰值带宽、40GB ESSD盘约38元/年;经济型e实例2核2G、3M带宽约99元/年;通用算力型u1实例2核4G、5M带宽约199元/年;u1实例4核8G、5M带宽约925.95元/年。文章提醒活动价受地域、周期、优惠券等影响,应以购买页为准,助读者按业务阶段理性选型。
|
1月前
|
存储 弹性计算 固态存储
阿里云服务器多少钱一年?轻量200M带宽38元/年、ECS服务器99元/年、2核4G5M带宽199元/年
本文详解2026年阿里云服务器最新价格:轻量应用服务器200M带宽仅38元/年,ECS经济型99元/年,企业级2核4G+5M带宽199元/年;涵盖包年包月、按量付费、抢占式实例三种计费模式,并解析ECS实例规格、带宽及系统盘详细收费标准。(239字)
|
1月前
|
人工智能 自然语言处理 API
阿里云百炼Token Plan指南:Credits计费、AI模型支持、省钱技巧与配置指南
阿里云百炼Token Plan是面向开发者与团队的AI大模型订阅服务,以Credits统一计费,支持Qwen、DeepSeek、Kimi等18+多模态模型及Claude Code、Cursor等主流AI编程工具。个人版39元起/月,团队版优惠价150元/月,含联网搜索、代码解释器等Harness工具,仅限华北2(北京)地域使用。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens