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

简介: 网课刚上线就被录屏搬运、被别处盗链播放?先说结论:根子不在平台,而在播放链接裸奔。把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 挡裸奔,签名挡抓包,加密挡录屏。按自己的课程价值和盗版压力选方案,小成本先上,被搬运了再升级。网课能不能卖得动,内容决定上限,防盗决定下限——别让辛苦录的课,成了别人的引流品。

相关文章
|
云安全 安全 网络安全
|
4天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
1842 1
|
10天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
1649 36
|
4天前
|
安全 应用服务中间件 Go
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
PHP2Shell 双 RCE 已遭在野利用:WordPress、Drupal 全在射程内,nginx 其实另有洞。拆成因与修复顺序
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
|
7天前
|
Web App开发 人工智能 前端开发
2026 年 AI 浏览器怎么选?Ego Lite、Tabbit、Chrome DevTools MCP 深度对比,开发者到底该用哪个?
2026年AI浏览器选型指南:Ego Lite专注多Agent协同(Mac优先),Tabbit国产首选,原生支持Windows与Codex控制;Chrome DevTools MCP非浏览器而是开发者利器,深度集成Console/Network/Performance调试能力,让AI真正“看懂并验证”前端代码。
923 2
|
11天前
|
安全 Linux 芯片
【万字长文】Ollama下载、安装、配置、使用保姆级教程(2026最新图解)
Ollama 是一款免费开源的本地大模型运行工具,支持 DeepSeek、Qwen 等主流模型,一条命令即可下载运行。2026 最新版 v0.35.1 官方安装包(1.47GB)已提供国内直连下载,纯本地、离线可用、无广告、无隐私泄露风险。
1038 2
|
11天前
|
JSON 程序员 数据格式
最新版Notepad++下载、安装、配置保姆级教程(附官网安装包)
Notepad++ 是一款免费开源、轻量快速的 Windows 文本编辑器,支持多标签、语法高亮、代码折叠与宏录制,体积小、启动快、资源占用低,兼容 x64/x32/ARM 架构,是程序员和文字工作者的高效利器。
1154 0
|
15天前
|
存储 人工智能 安全
千问办公官网入口网页版登录:qwenwork.cn 注册送2000积分、登录送100积分
阿里云千问办公(QwenWork)是AI智能工作平台,支持一句话生成PPT、表格、网页、视频及数据分析。个人免费版送2000积分+每日登录赠100分,含1GB存储、5个发布页;企业版198元/席/月起。阿里千问办公QwenWork官网:https://t.aliyun.com/U/0VCTGt 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
|
10天前
|
人工智能 开发者
Qoder CN 大使计划正式开启|无限创造,等你一起
全年免费积分、优先内测、活动支持与更多共创机会,邀请用 Qoder 把想法变成现实的你。
666 6

热门文章

最新文章