点播
服务端
新手接入指南
产品简介
产品介绍
功能特性
产品优势
基本概念
创建应用
开通点播服务
配置CDN分发加速
什么是 CDN 分发加速
添加加速域名
配置CNAME
配置CDN缓存
防盗链
配置HTTPS安全加速
配置刷新预热
内容安全审核
功能概述
使用说明
最佳实践
CDN 加速对象存储资源
服务端 API
接口概述
媒资上传
视频处理
视频编辑
媒资管理
回调管理
视频安全
视频加密
安全通
移动端终端用户管理
数据统计
常见问题

防盗链

更新时间: 2023/01/30 15:56:10

为了防止您的资源被盗链而产生高额流量,网易云信建议您设置 CDN 资源的访问控制,保障您的资源不被盗播,您可以根据实际需要选择 Referer 防盗链、IP 防盗链、User-Agent 防盗链或 URL 鉴权。

  • 如果您使用的是云信预置域名,已默认开启URL鉴权,您可以忽略该章节。
  • 如果您使用的是自定义域名,请参考本文手工开启防盗链。

功能简介

网易云信的点播 CDN 防盗链包括如下几种类型:

  • URL 鉴权:在点播视频播放地址中通过添加鉴权字符串的方式,来校验地址合法性,防止视频被盗播。开通 URL 鉴权后,视频播放地址中需要包含一段鉴权字符串,只有合法生成的鉴权字符串,才可以通过校验从而播放,且该地址有时效性,只在设定的有效期内可播放。这样即使别人获取到已失效的地址,也是无法继续使用的,防止别人盗播视频。如果已经使用有效的地址正在播放,不会因为超时失效而受影响。
  • Referer 防盗链:CDN 通过 HTTP 播放请求头中携带的 Referer 字段识别请求的来源。通过黑白名单,设置允许访问 CDN 资源的域名,实现对访客的过滤,防止视频被盗播。
  • IP 防盗链:通过黑白名单,设置允许访问 CDN 资源的 IP 地址,实现对访客的过滤,防止视频被盗播。
  • User-Agent 防盗链:CDN 通过 HTTP 请求头中的 User-Agent 字段进行访问控制。通过黑白名单,设置允许访问 CDN 资源的浏览器或客户端。

URL 鉴权的功能原理

防盗链URL构成

点播防盗链URL由资源地址加上鉴权字符串构成:

http://domainName/bucketName/objectKey?wsSecret=XXXXXX&wsTime=XXXXXX

其中,wsTime 是生成校验字符串时的时间戳(单位秒),wsSecret 是根据一定规则生成的加密字符串,具体请参见鉴权字符串的计算规则

您通过云信控制台或者服务端 API 获取到的视频地址默认会带着鉴权字符串,即获取到的就是完整的可播放地址。

鉴权方法

URL 鉴权通过云信 CDN 加速节点与用户资源站点配合实现:

  1. 用户资源站点提供给终端用户加密 URL(资源地址加权限验证信息)。

  2. 终端用户使用加密后的 URL 向云信加速节点发起请求。

  3. 加速节点收到播放请求时,验证请求的合法性,具体校验如下:

    • 校验视频是否已过期:若请求时间大于wsTime +鉴权KEY有效时间,则表示视频已过期。
    • 校验字符串 wsSecret 是否合法。
  4. 如果请求合法则正常响应,如果请求不合法,则拒绝请求,从而达到防止盗播的目的。

鉴权字符串的计算规则

校验字符串 wsSecret 计算规则如下:

wsSecret=encoderByMd5With32Bit(secretKey + "/" + bucketName + "/" + objectKey + wsTime)

其中,secretKey 即主KEY或备KEY的值,bucketNameobjectKey唯一标识了用户的某一视频资源,加密算法是 32 位 md5 算法。

举例说明,假设用户某视频资源的原始地址是:

http://vodk32ywxdf.vod.126.net/vodk32ywxdf/example.mp4

用户设置的防盗链加密秘钥secretKey是"mySecretKey",生成校验字符串的时间戳是1556279147,那么按照上述规则计算生成的校验字符串wsSecret为:

wsSecret=encoderByMd5With32Bit(mySecretKey/vodk32ywxdf/example.mp41556279147)

配置防盗链

  1. 登录网易云信控制台
  2. 在左侧导航栏单击对应的应用名称,在功能管理区域,单击点播右侧的分发加速
  3. 域名管理页签中,在对应加速域名的操作列中单击配置
  4. 单击访问控制。根据需要开启相应的防盗链配置,具体参数说明如下表所示。

防盗链.png

防盗链类型 参数 描述 输入规则 示例
Referer防盗链 防盗链类型 支持设置白名单或黑名单。黑名单和白名单不能同时设置,只支持一种模式。
  • 白名单:只有白名单内的域名能访问资源。
  • 黑名单:黑名单内的域名将无法访问资源。
  • 域名前请不要带协议名(http://和https://)。
  • 可输入多个域名,多个域名之间换行隔开。最多能输入 50 个域名。
  • 采用模糊匹配,自动匹配子域名,前面不需要再加通配符。例如,输入 example.com 就可以匹配到它的所有子域名。
  • 支持带端口。
example.com
空Referer访问 设置是否允许用户直接通过浏览器的地址栏中输入资源的 URL 地址访问资源。 / 禁止
IP防盗链 防盗链类型 支持设置 IP 网段和 IP 地址。
  • 白名单:只有白名单内的 IP 地址能访问资源。
  • 黑名单:黑名单内的 IP 地址将无法访问资源。
  • 支持 IPv6。IPv6 如果有字母的话必须是大写,IPv6 地址不支持缩写格式。
  • 支持输入多个IP地址或“IP/掩码”格式的网段。多个IP之间换行隔开。
  • 最多支持 1000 个。
1.2.0.0/24
User-Agent防盗链 防盗链类型 支持设置白名单或黑名单。
  • 白名单:只有白名单内的 User-Agent 能访问资源。
  • 黑名单:黑名单内的 User-Agent 将无法访问资源。
  • 模糊匹配,不支持正则和通配符。例如 phone,会匹配到 iphone、iphonex 等。
  • 最多支持 100 个
Chrome
URL鉴权 主KEY (必选)输入自定义的主KEY。该KEY会用于生成防盗链 URL 中鉴权字符串的加密 KEY。 长度16~32个字符 mySecretKey123456
备KEY (可选)输入自定义的备KEY。备 KEY 主要用于主 KEY 更新时,确保业务平滑更换。当更新主 KEY 后,所有使用主 KEY 生成的播放地址会立即失效,这时用备 KEY 可以替代主 KEY 继续提供服务。 长度16~32个字符 mySecretKey234567
鉴权KEY有效时间 URL 鉴权字符串的有效期,单位为秒。默认为 120 分钟。 有效时间不能超过 1 年。 7200
  1. 单击保存
  • 当状态为配置中时,您将无法修改相应的配置,页面不展示保存按钮。
  • 当状态为运行中时,您才能修改相应的配置。

配置示例

配置Referer防盗链

假设您设置的白名单为 example.com,则:

  • 当用户请求携带的 Referer 字段中包含了 example.com,CDN 将会正常返回内容。
  • 当用户请求携带的 Referer 字段中不包含 example.com,CDN 提示禁止访问的错误信息。

配置 IP 防盗链

假设您设置的黑名单为1.2.0.0/24,则:

  • 用户端 IP 为1.2.3.4的用户访问资源时,CDN 提示禁止访问的错误信息。
  • 用户端 IP 为2.2.1.1的用户访问资源时,CDN 将会正常返回内容。

配置 User-Agent防盗链

假设您设置的黑名单为Chrome,则:

当 HTTP 请求头中的 User-Agent 包含类似如下信息时,CDN 提示禁止访问的错误信息。

user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36
此文档是否对你有帮助?
有帮助
我要吐槽
  • 功能简介
  • URL 鉴权的功能原理
  • 防盗链URL构成
  • 鉴权方法
  • 鉴权字符串的计算规则
  • 配置防盗链
  • 配置示例
  • 配置Referer防盗链
  • 配置 IP 防盗链
  • 配置 User-Agent防盗链