UPYUN CDN – 外链开关及防盗链设置

UPYUN 对外链的开关及防盗链提供后台管理功能,下面讲一下具体的管理操作:

外链开关

登陆 UPYUN 管理中心,按顺序进入

【服务】—【基础配置】

此功能控制站点资源的访问性,可以开启或关闭,一旦关闭外链功能,所有资源都将不能访问。

防盗链设置

UPYUN 防盗链支持域名、IP、客户端、Token 等多种防盗链模式,并且可自定义防盗链提示图,具体操作如下:

首先登录 UPYUN 进入管理中心

【服务】—选择服务项,点击“功能配置”—【防盗链】

 

1)IP禁用:

如果不希望某个 IP 或 IP 段的客户访问服务中的文件,可以使用 IP 禁止功能

点击“管理”,选择开启 IP 禁用,在下方的禁用 IP 地址输入框内输入禁用的 IP 地址

注意每行只能输入一个 IP 地址,用“回车”隔开

 

支持 * 通配符,如 10.11.12.* 将禁止 10.11.12.0~10.11.12.255 的 IP 访问,1 个 IP 段禁用仅占用 1 个 IP 禁用上限

注意:

l  最多可禁止 50 个 IP 或 IP 段

l  被禁止的 IP 访问资源时,将提示 403。

2) 域名防盗链

可通过域名白名单或黑名单设置,允许或禁止某个域名网站引用服务的文件。

例如:如下图设置

效果为所有 upyun.com 网址,和 abc.taobao.com 、可引用,其他域名的网站一律无法引用

反之,如果仅需限制某个网址无法引用,那就选择“开启防盗链黑名单”并且填写禁止引用的网址到黑名单列表即可

Referer配置,可以选择 “允许Referer为空“和”禁止Referer为空“

允许 Referer 为空:HTTP 请求中不管是否包含 Referer 头部,都以域名防盗链的黑白名单的访问逻辑为准。

禁止 Referer 为空:HTTP 请求中不包含 Referer 头部,那么这类请求直接禁止访问。返回 403 Forbidden

3)客户端防盗链

对于一些仅用于客户端软件,或手机 APP 的客户,可以通过客户端白名单功能限制文件访问

例如:如下图设置,则只有 user-agent为Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 的设备可访问

  • 每行输入一个
  • 支持通配符(*)
  • 不区分大小写

4) Token 防盗链

适合下载类网站或应用使用,可设置签名和签名过期时间。

签名:

_upt = MD5(token密匙&etime&URI){中间8位}+etime

参数:

token 密匙:用户所填的密钥

etime:过期时间,必须是 UNIX TIME 格式,如:1378092990

URI:请求地址(不包含?及后面的Query String),如:/dir/pic.jpg

举例:

设置图片链接 http://{服务域名}/dir/pic.jpg 10分钟有效

当前时间秒数 = 1370000000

etime = 1370000000 + 600 = 1370000600

URI = “/dir/pic.jpg”

sign = MD5(token密匙&etime&URI) = xxxxxxxxxxxxabcdefghyyyyyyyyyyyy

_upt = MD5(token密匙&etime&URI){中间8位}+etime = abcdefgh1370000600

该签名拼接在 URL 地址或用户 Cookie 中,均可起到防盗链作用:

URL: http://{服务域名}/dir/pic.jpg?_upt=abcdefgh1370000600

Cookie: _upt=abcdefgh1370000600;

备注:

对于使用 Cookie 类无法给每个链接进行单独签名的情况,可使用 / 作为 URI 进行统一的泛签名,

如:

MD5(token密匙&过期时间&/){中间8位}+过期时间

注意:泛签名在过期时间内,对服务内的所有链接资源都有效

目录级别 Token 防盗链:_upp 参数

_upp 参数是用来配合 Token 防盗链的 _upt 参数使用的,以便支持用户可自定义目录级别进行签名,默认情况下 _upt 均以完整的 URI 进行签名,当 _upp = 2 那么就以相应的 uri = ‘/a/b/’  来进行签名。这样就很容易实现对某个目录的防盗链权限控制了。

示例

http://upyun-assets.b0.upaiyun.com/docs/cdn/upyun-cdn-architecture.png?_upp=2&_upt=abcdefgh1370000600

例如对于以上这条结合 _upp 参数的 Token 防盗链请求来说,对应 _upt 参数正确的签名应按如下公式进行计算(其中被签名 URI 此时为 /docs/cdn/):
MD5(token 密匙&过期时间&/docs/cdn/){中间 8 位} + 过期时间

详细说明

其值应为正整数,设置范围 0 <= x <= 20,超过该范围或其它不合法的字符均视为无效值,此时仍然按照 URI 全路径进行匹配.
当 _upp = 0 时,总是匹配 /;其它 _upp = 1,2,3 … 分别对应一级目录,二级目录,三级目录 …

例如,对于 uri = ‘/a/b/c/foo.jpg’  来说:

[v] /a/b/c/foo.jpg => ‘/a/b/c/foo.jpg’

[v] /a/b/c/foo.jpg?_upp=0 => ‘/’

[v] /a/b/c/foo.jpg?_upp=1 => ‘/a/’

[v] /a/b/c/foo.jpg?_upp=2 => ‘/a/b/’

[v] /a/b/c/foo.jpg?_upp=3 => ‘/a/b/c/’

[x] /a/b/c/foo.jpg?_upp=4 => ‘/a/b/c/foo.jpg’

[x] /a/b/c/foo.jpg?_upp=-1 => ‘/a/b/c/foo.jpg’

[x] /a/b/c/foo.jpg?_upp=abc => ‘/a/b/c/foo.jpg’  

留下一个评论