CDN 的访问控制 & 视频相关
1.Referer
又拍云
https://help.upyun.com/knowledge-base/cdn-referer-limite/
七牛云
https://developer.qiniu.com/fusion/manual/3839/domain-name-hotlinking-prevention
腾讯云
https://cloud.tencent.com/document/product/228/41454
阿里云
https://help.aliyun.com/document_detail/27134.html
AWS
未找到相关文档
2.回源鉴权(自定义接口)
又拍云
https://help.upyun.com/knowledge-base/cdn-back-source-auth/
可添加多种鉴权配置
资源地址 鉴权资源地址,如:www.example.com/a/*,仅支持在路径部分使用通配符 *
鉴权服务器地址,格式: http://validate.example.com/app/cdnValidate
请求方法支持 GET POST
鉴权参数 URL 参数 支持最多20个
鉴权成功 失败根据 http 状态码确定
超时默认 通过 或 失败
七牛云
https://developer.qiniu.com/fusion/manual/3930/back-to-the-source-authentication
回源鉴权与时间戳防盗链功能不能同时开启。
无法指定某些资源不参与鉴权。
鉴权服务器地址 格式: https://auth.example.com/cdnauth 或者 http://127.0.0.1:8080/cdnauth
请求方法支持 HEAD GET POST
鉴权参数 URL 参数 支持最多20个
可以添加 不参加鉴权的 Header URL 参数
鉴权成功 失败根据 http 状态码确定
超时默认 通过 或 失败
腾讯云
未找到相关文档
阿里云
未找到相关文档
AWS
未找到相关文档
3.URL Token鉴权
又拍云
https://help.upyun.com/knowledge-base/cdn-token-limite/
不支持指定文件类型,但是可以通过边缘规则实现自定义防盗链
https://help.upyun.com/knowledge-base/cdn-edgerules-grammar/
https://help.upyun.com/knowledge-base/cdn-edgerules-cases/
七牛云
https://developer.qiniu.com/fusion/manual/3841/timestamp-hotlinking-prevention-fusion
不支持指定文件类型
但是可以找客服。先开通时间戳防盗链功能,然后找客服,让他们去指定 ts 文件不鉴权。该功能目前暂未开放,只能找客服后台开启。
腾讯云
https://cloud.tencent.com/document/product/228/41622、
支持指定文件类型
阿里云
https://help.aliyun.com/document_detail/85117.html
不支持指定文件类型
可以使用边缘脚本 EdgeScript 定制鉴权
https://help.aliyun.com/document_detail/126565.html
https://help.aliyun.com/document_detail/126571.html
AWS
支持指定文件类型
使用签名 URL
使用固定政策创建签名 URL
使用自定义政策创建签名 URL
使用 Java 创建 URL 签名
4.视频拖拽
又拍云
https://help.upyun.com/knowledge-base/cdn-video-drag/
七牛云
未找到相关文档
腾讯云
https://cloud.tencent.com/document/product/228/8111
阿里云
https://help.aliyun.com/document_detail/27130.html
可以实现音视频试看
https://help.aliyun.com/document_detail/140382.html
AWS
未找到相关文档
5.刷新缓存
又拍云
https://help.upyun.com/knowledge-base/refresh/
https://github.com/upyun/java-purge-sdk
七牛云
https://developer.qiniu.com/fusion/manual/3845/refresh-the-prefetch-fusion
https://developer.qiniu.com/kodo/sdk/1239/java#9
腾讯云
https://cloud.tencent.com/document/product/228/11204
阿里云
https://help.aliyun.com/document_detail/27140.html
AWS
https://docs.aws.amazon.com/zh_cn/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html
6.访问日志
又拍云
https://help.upyun.com/knowledge-base/cdm-log-download/
七牛云
https://developer.qiniu.com/fusion/manual/3847/cdn-log-fusion
腾讯云
https://cloud.tencent.com/document/product/228/6316
阿里云
https://help.aliyun.com/document_detail/27142.html
AWS
https://docs.aws.amazon.com/zh_cn/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html
URL上的参数不在日志中
101.总结
防盗链
Referer 设置最简单
Token 鉴权 腾讯支持度最好,可以支持指定类型文件鉴权
普通HLS加密
当ts文件是开放(不需要鉴权)的情况下,用户可以直接下载ts文件,拼接出完整的视频,但是如果拿不到解密的key,仍然无法播放。
这种方法不能防止直接使用 m3u8 下载的情况
HLS视频加密 - Hi, I’m Vimiix
知识付费——移动端音视频加密、防盗播实现方案
通过HLS加密防止视频泄露
自定义HLS加密
https://blog.csdn.net/z13192905903/article/details/102655575
缓存刷新
如果资源位置相同,重转后应刷新CDN