腾讯云 EdgeOne 鉴权方式完整指南

鉴权方式快速对比

详细对比表格

颜色说明

最佳 绿色 - 安全性高/功能强/性能优
良好 浅绿 - 表现良好
一般 黄色 - 表现中等
较弱 红色 - 功能简单/性能一般
不支持 灰色 - 不支持该功能

注意:对于鉴权系统,参数越多、实现越复杂通常意味着安全性越高,因此显示为绿色。

特性 鉴权A 在线工具 鉴权B 在线工具 鉴权C 在线工具 鉴权D 在线工具
URL形式 查询参数式 路径式 路径式 查询参数式
时间戳格式 Unix十进制 YYYYMMDDHHMM Unix十六进制 Unix十进制/十六进制
MD5算法 MD5(Path-timestamp-rand-uid-密钥) MD5(密钥+timestamp+Path) MD5(密钥+Path+timestamp) MD5(密钥+Path+timestamp)
随机字符串 支持(0-100位) 不支持 不支持 不支持
用户ID 支持 不支持 不支持 不支持
参数个数 4个(timestamp-rand-uid-md5hash) 2个(timestamp/md5hash) 2个(md5hash/timestamp) 2个(token&t)
URL长度 最长 中等 最短 中等
安全性等级 最高 中等
实现复杂度
SEO友好度 一般 很好 很好 一般
CDN缓存友好 很好 很好
防重放攻击 支持 不支持 不支持 不支持
时区依赖 无依赖 依赖UTC+8 无依赖 无依赖
可读性 很好 一般

示例URL对比

原始URL: https://cdn.example.com/videos/movie.mp4

鉴权方式 生成的鉴权URL示例
鉴权A
https://cdn.example.com/videos/movie.mp4?token=1721028437-Kv4cPTAAP5YTi-0-0fbdca749d7ab784750685347e42075c
鉴权B
https://cdn.example.com/202407151533/d1f0b51c6894231fc12e054fcc7f0b3e/videos/movie.mp4
鉴权C
https://cdn.example.com/6688749e8906a726c12fe1be3aacd016/6694d30a/videos/movie.mp4
鉴权D
https://cdn.example.com/videos/movie.mp4?token=d1f0b51c6894231fc12e054fcc7f0b3e&t=1721028437

快速选择指南

高安全场景选择鉴权A,适用于付费视频网站、企业机密文档、API接口保护、防重放攻击需求。

SEO优化需求选择鉴权B或C,适用于图片网站博客、新闻媒体网站、电商商品图片、需要搜索引擎收录。

快速部署选择鉴权D,适用于个人博客、小型网站、测试环境、简单防盗链。

国际化应用选择鉴权C,适用于跨时区应用、软件下载站、文档管理系统、标准Unix时间戳。

目录大纲

概述

什么是CDN鉴权

CDN鉴权是一种访问控制机制,通过在URL中添加特定的鉴权参数,确保只有经过授权的用户才能访问CDN上的资源。它可以有效防止资源被盗链、恶意下载或未授权访问。

为什么需要鉴权

防盗链保护 - 防止其他网站直接引用您的资源
访问控制 - 限制特定用户或时间段的访问
成本控制 - 避免不必要的带宽消耗
内容保护 - 保护付费内容不被非法获取
合规要求 - 满足某些行业的安全合规标准

EdgeOne支持的鉴权方式

腾讯云EdgeOne提供四种不同的鉴权方式,每种都有其特定的应用场景。

鉴权A功能最全面,支持随机字符串和用户ID,安全性最高。

鉴权B路径式,使用人类可读的时间格式,SEO友好。

鉴权C路径式,使用十六进制时间戳,URL最短。

鉴权D最简单,适合快速部署和轻量级应用。

鉴权 A - 查询参数式鉴权 在线工具

特点与优势

功能最全面 - 支持随机字符串和用户ID,安全性最高
防重放攻击 - 随机字符串确保每次生成的URL都不同
用户级控制 - 可以为不同用户生成不同的鉴权URL
灵活配置 - 支持自定义参数名和随机字符串长度

参数说明

参数 说明 示例
timestamp Unix时间戳(十进制) 1721028437
rand 随机字符串(0-100位) Kv4cPTAAP5YTi
uid 用户ID(通常为0) 0
md5hash MD5校验值 0fbdca749d7ab784750685347e42075c

配置示例

鉴权参数:路径为 /video.mp4,时间戳为 1721028437,随机字符串为 Kv4cPTAAP5YTi,用户ID为 0,密钥为 DvYmqE81E1F9R791H6lmht

MD5计算:将路径、时间戳、随机字符串、用户ID和密钥按顺序拼接,计算MD5值。

生成Token:将时间戳、随机字符串、用户ID和MD5值用连字符连接。

最终URL:在原始URL后添加token参数。

MD5计算公式:

MD5(Path-timestamp-rand-uid-密钥)

适用场景

付费视频网站 - 需要用户级别的访问控制
企业文档系统 - 需要高安全性的文件保护
在线教育平台 - 防止课程视频被盗链
API接口保护 - 需要防重放攻击的接口调用

URL格式详解

URL格式

原始URL: https://example.com/video.mp4

鉴权URL: https://example.com/video.mp4?token=1721028437-Kv4cPTAAP5YTi-0-0fbdca749d7ab784750685347e42075c

格式说明: ?{参数名}={timestamp}-{rand}-{uid}-{md5hash}

鉴权 B - 路径式鉴权(YYYYMMDDHHMM) 在线工具

特点与优势

SEO友好 - 路径式URL对搜索引擎更友好
缓存效率高 - 相同资源的URL结构一致,缓存命中率高
时间可读性强 - YYYYMMDDHHMM格式便于人工识别
配置简单 - 参数较少,配置相对简单

参数说明

参数 说明 示例
timestamp 时间戳(YYYYMMDDHHMM格式) 202407151533
md5hash MD5校验值 d1f0b51c6894231fc12e054fcc7f0b3e
完整路径 包含目录结构的完整路径 /images/photo.jpg

配置示例

假设请求 https://www.example.com/foo.jpg 使用鉴权方式B。

获取鉴权参数:路径为 /foo.jpg,时间戳为服务端生成鉴权URL的时间2024年7月15日15:33:50(UTC+8),转换为十进制(YYYYMMDDHHmm)格式的数值为 202407151533,密钥为 DvYmqE81E1F9R791H6lmht

MD5计算:MD5(密钥 + timestamp + Path)= MD5(DvYmqE81E1F9R791H6lmht202407151533/foo.jpg)= d1f0b51c6894231fc12e054fcc7f0b3e

客户端请求生成的鉴权URL:https://www.example.com/202407151533/d1f0b51c6894231fc12e054fcc7f0b3e/foo.jpg

MD5计算公式:

MD5(密钥 + timestamp + Path)

适用场景

图片网站 - 需要SEO优化的图片资源
新闻媒体 - 文章配图需要防盗链保护
电商平台 - 商品图片防盗链
博客系统 - 静态资源保护且需要SEO友好

URL格式详解

URL格式

原始URL: https://example.com/images/photo.jpg

鉴权URL: https://example.com/202407151533/d1f0b51c6894231fc12e054fcc7f0b3e/images/photo.jpg

格式说明: /{timestamp}/{md5hash}/{完整路径}

鉴权 C - 路径式鉴权(十六进制) 在线工具

特点与优势

URL更短 - 十六进制时间戳比YYYYMMDDHHMM格式更短
标准时间戳 - 使用标准Unix时间戳,便于系统间对接
SEO友好 - 同样是路径式URL结构
国际化友好 - Unix时间戳不受时区影响

参数说明

参数 说明 示例
md5hash MD5校验值 6688749e8906a726c12fe1be3aacd016
timestamp Unix时间戳(十六进制) 6694d30a
完整路径 包含目录结构的完整路径 /docs/manual.pdf

配置示例

假设请求 https://www.example.com/docs/manual.pdf 使用鉴权方式C。

获取鉴权参数:路径为 /docs/manual.pdf,时间戳为服务端生成鉴权URL的时间2024年7月15日15:33:50(UTC+8),对应Unix时间戳为 1721028830,转换为十六进制为 6694d31e,密钥为 DvYmqE81E1F9R791H6lmht

MD5计算:MD5(密钥 + Path + timestamp)= MD5(DvYmqE81E1F9R791H6lmht/docs/manual.pdf6694d31e)= 6688749e8906a726c12fe1be3aacd016

客户端请求生成的鉴权URL:https://www.example.com/6688749e8906a726c12fe1be3aacd016/6694d31e/docs/manual.pdf

MD5计算公式:

MD5(密钥 + Path + timestamp)

适用场景

软件下载站 - 安装包下载保护
文档管理系统 - PDF等文档的访问控制
API文档 - 需要鉴权的API文档访问
国际化应用 - 需要跨时区的应用系统

URL格式详解

URL格式

原始URL: https://example.com/docs/manual.pdf

鉴权URL: https://example.com/6688749e8906a726c12fe1be3aacd016/6694d30a/docs/manual.pdf

格式说明: /{md5hash}/{timestamp}/{完整路径}

鉴权 D - 查询参数式鉴权(简化版) 在线工具

特点与优势

配置最简单 - 参数最少,最容易实现
快速部署 - 适合快速上线的项目
灵活的时间戳格式 - 支持十进制和十六进制两种格式
自定义参数名 - 可以自定义token和时间戳参数名

参数说明

参数 说明 示例
token MD5校验值 d1f0b51c6894231fc12e054fcc7f0b3e
t Unix时间戳(十进制或十六进制) 1721028437

配置示例

假设请求 https://www.example.com/music.mp3 使用鉴权方式D。

获取鉴权参数:路径为 /music.mp3,时间戳为服务端生成鉴权URL的时间2024年7月15日15:33:50(UTC+8),对应Unix时间戳为 1721028830,密钥为 DvYmqE81E1F9R791H6lmht

MD5计算:MD5(密钥 + Path + timestamp)= MD5(DvYmqE81E1F9R791H6lmht/music.mp31721028830)= d1f0b51c6894231fc12e054fcc7f0b3e

客户端请求生成的鉴权URL:https://www.example.com/music.mp3?token=d1f0b51c6894231fc12e054fcc7f0b3e&t=1721028830

参数配置:token参数名为 token,时间戳参数名为 t,支持自定义参数名。

MD5计算公式:

MD5(密钥 + Path + timestamp)

适用场景

个人博客 - 简单的图片防盗链
小型网站 - 快速实现资源保护
测试环境 - 开发测试阶段的临时保护
轻量级应用 - 不需要复杂鉴权的简单应用

URL格式详解

URL格式

原始URL: https://example.com/music.mp3

鉴权URL: https://example.com/music.mp3?token=d1f0b51c6894231fc12e054fcc7f0b3e&t=1721028437

格式说明: ?token={md5hash}&t={timestamp}

总结

综合对比

腾讯云EdgeOne提供的四种鉴权方式各有特色,选择合适的鉴权方式需要综合考虑:

安全性要求 鉴权A > 鉴权B/C > 鉴权D
SEO需求 鉴权B/C > 鉴权A/D
实现复杂度 鉴权D < 鉴权B/C < 鉴权A
URL长度 鉴权C < 鉴权B < 鉴权D < 鉴权A

推荐方案

🔒
高安全场景 鉴权A
🔍
SEO优化需求 鉴权B
快速部署 鉴权D
🌍
国际化应用 鉴权C

结论

通过合理配置和使用这些鉴权方式,可以有效保护您的CDN资源,提升安全性的同时保证良好的用户体验。