全部产品
云市场

访问限制

更新时间:2019-06-06 10:52:39

简介

访问限制是在云端配置视频资源的访问策略,达到基本的保护目的,具有使用门槛低(仅云端配置不需要额外开发)、快速生效等优点,主要手段有:

  • Referer访问限制,即Referer黑白名单,具体配置参考 Referer防盗链
  • IP访问限制,IP黑/白名单配置参考 IP黑/白名单
  • User-Agent访问限制,即UA黑白名单。
  • 访问数限制:一定周期内,视频URL的访问次数限制、独立IP数限制

User-Agent访问限制访问数限制,由于配置繁琐且存在误操作风险,暂未开放控制台设置,如有需求可 提交工单或联系阿里云售后处理。

Referer黑白名单

  • 基于 HTTP 协议支持的 Referer机制,通过 Referer跟踪来源,对来源进行识别和判断,用户可配置访问的 Referer 黑、白名单(二者互斥)来限制视频资源被访问的情况。
  • 支持黑名单和白名单两种模式,访客对资源发起请求后,请求到达CDN 节点,节点会根据用户预设的防盗链黑名单或白名单进行过滤,符合规则可顺利请求到视频数据;若不符合,请求会被拒绝,并返回403响应码。
  • 配置后会自动添加泛域名支持,例如填写a.com,最终配置生效的是*.a.com,所有子级域名都会生效。
  • 由于移动端一般拿不到Referer,当前默认支持空Referer访问,可选择关闭。

    使用方式参考 Referer防盗链

示例

设置点播域名 vod-test1.cn-shanghai.aliyuncs.com 的Referer白名单为 aliyun.com,且不允许空Referer访问,请求数据:

  1. curl -i 'http://vod-test1.cn-shanghai.aliyuncs.com/sv/5101d1f8-1643f9ab241/5101d1f8-1643f9ab241.mp4'

返回

refer-acl

当请求带上允许的referer后即正常返回:

  1. curl -i 'http://vod-test1.cn-shanghai.aliyuncs.com/sv/5101d1f8-1643f9ab241/5101d1f8-1643f9ab241.mp4' \
  2. -H 'Referer: http://www.aliyun.com'

UA黑白名单

UA(User-Agent)是一个特殊字符串头,帮助服务端识别用户使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎&语言和插件等。可通过UA黑白名单来限制特定浏览器或终端的访问。如PC端IE9浏览器:

  1. User-Agent:Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;Trident/5.0;

可模拟HTTP请求验证:

  1. curl -i 'http://vod-test1.cn-shanghai.aliyuncs.com/sv/5101d1f8-1643f9ab241/5101d1f8-1643f9ab241.mp4' \
  2. -H 'User-Agent: iPhone OS;MI 5'

IP黑白名单

视频点播支持配置IP黑名单或白名单,拒绝或只允许特定IP的访问。

  • 支持IP列表添加,并支持添加IP网段,例如127.0.0.1/24。

    网段127.0.0.1/24,24表示采用子网掩码中的前24位为有效位,即用32-24=8bit来表示主机号,该子网可以容纳2^8 - 2 = 254 台主机,故可表示IP网段范围:127.0.0.1~127.0.0.255。

  • 可选择优先使用 remote_addr 或 X-Forwarded-For(XFF) 作为请求端IP,或者同时匹配。

访问次数和独立IP数限制

点播服务可限制媒体资源在一定时间周期内(如1天)的最大访问次数和最大独立IP数,核心原理是所有请求先到中心化的访问计数服务进行验证,判断是否超过预设的阈值,若超过则拒绝服务,返回HTTP 403。

  • 该限制为URL(包括文件地址和签名信息)维度而非文件维度,但可配置忽略URL中的部分参数;限制的阈值到域名粒度,可单独设置。
  • 访问计数服务是多区域部署的中心化服务,一个URL只能被调度到其中一个区域,以保证中心化计数。
  • CDN边缘节点收到请求后会访问中心化计数服务进行计数和验证。

小结

  • 访问限制的使用门槛很低,只需简单配置即可使用,能起到一定的保护作用,特别是Web端。
  • Referer和UA都是基于HTTP Header,容易被伪造,安全性低。
  • IP黑白名单机制和访问数限制,无法实现内容分发给大量C端用户,不适合广泛的内容消费场景,且后者在阈值范围内也可能被非法访问。