本文介绍如何在缤纷云 CDN 中使用高级防盗链。
为保护资源被滥用,CDN 配置 Referer 和 IP 的黑白名单来判断是否是合法用户及来源。然后 Referer 可被 轻松伪造,实际使用中仍存在隐患。
为了更好地保护源站资源,CDN 支持加密 URL 的功能,可以通过 高级鉴权 的方式来正确响应合法请求、拒绝非法请求。
在控制台为需要保护的 “加速项目” 启用“高级鉴权”,并设置一个名为 鉴权 Key
的“暗号”,利用与 CDN 同样策略的方式向合法用户提供利加密的 URL,并通过 ts 参数设定该 URL 的有效时间戳;
用户在访问资源时会根据下面的 规则
判断请求的合法性:
是否有签名
继续判断下一条规则
返回 403 Forbidden
;当前是否早于 _ts 参数规定的时间戳
继续判断下一条规则
返回 403 Forbidden
;判断 _btf_tk 是否合法(防止 _ts 被伪造)
200 并返回资源
返回 403 Forbidden
。一个正确的典型高级防盗链 URL 应该类似于:
http://tests3origin.dogecast.com/image.jpg?
_ts
=1701091625&_btf_tk
=960edecad993db64d8aab938c7dfc3f7
其中:
下面是部分主流语言实现上述 典型范例 中的 高级鉴权 URL
的示例代码。
它们应该可在各个 playground 中被正确执行。
安全提示:
下面虽然列出了部分客户端语言的示例,但缤纷云建议您永远 只在服务端生成 高级鉴权链接并分发给客户端。 因为这可以:
time.Now().Unix() 有效性提示
请注意: 在运行 Rust 代码前需要在你的 Cargo.toml 文件中添加以下依赖
本文介绍如何在缤纷云 CDN 中使用高级防盗链。
为保护资源被滥用,CDN 配置 Referer 和 IP 的黑白名单来判断是否是合法用户及来源。然后 Referer 可被 轻松伪造,实际使用中仍存在隐患。
为了更好地保护源站资源,CDN 支持加密 URL 的功能,可以通过 高级鉴权 的方式来正确响应合法请求、拒绝非法请求。
在控制台为需要保护的 “加速项目” 启用“高级鉴权”,并设置一个名为 鉴权 Key
的“暗号”,利用与 CDN 同样策略的方式向合法用户提供利加密的 URL,并通过 ts 参数设定该 URL 的有效时间戳;
用户在访问资源时会根据下面的 规则
判断请求的合法性:
是否有签名
继续判断下一条规则
返回 403 Forbidden
;当前是否早于 _ts 参数规定的时间戳
继续判断下一条规则
返回 403 Forbidden
;判断 _btf_tk 是否合法(防止 _ts 被伪造)
200 并返回资源
返回 403 Forbidden
。一个正确的典型高级防盗链 URL 应该类似于:
http://tests3origin.dogecast.com/image.jpg?
_ts
=1701091625&_btf_tk
=960edecad993db64d8aab938c7dfc3f7
其中:
下面是部分主流语言实现上述 典型范例 中的 高级鉴权 URL
的示例代码。
它们应该可在各个 playground 中被正确执行。
安全提示:
下面虽然列出了部分客户端语言的示例,但缤纷云建议您永远 只在服务端生成 高级鉴权链接并分发给客户端。 因为这可以:
time.Now().Unix() 有效性提示
请注意: 在运行 Rust 代码前需要在你的 Cargo.toml 文件中添加以下依赖