如何进行CDN鉴权配置?

CDN鉴权配置包括URL鉴权和远程鉴权,通过校验请求的合法性保护资源。

CDN(内容分发网络)是一种通过在全球范围内部署大量节点,将内容缓存到离用户最近的节点,从而实现快速、稳定的内容传输的技术,在CDN上分发的内容默认为公开资源,用户拿到URL后均可进行访问,为了防止恶意用户盗刷资源,除了通过referer黑白名单、IP黑白名单、IP访问限频等访问控制策略外,还可以通过设置高级时间戳鉴权来进行盗刷防护。

CDN鉴权配置步骤

cdn鉴权配置

1、登录CDN控制台:需要登录到CDN服务提供商的控制台。

2、选择域名管理:在控制台菜单栏里选择“域名管理”,并单击目标域名右侧的“管理”按钮,进入域名配置页面。

3、访问控制中的鉴权配置:在域名配置页面中,找到“访问控制”选项,并点击“鉴权配置”,默认情况下,鉴权配置为关闭状态。

4、修改配置:点击“修改配置”按钮,进入鉴权配置页面。

5、选择鉴权模式:CDN提供了多种鉴权签名计算方式供您选择,如TypeA、TypeB、TypeC、TypeD等,每种模式的具体区别和URL格式如下表所示:

类型 URL格式
TypeA http://DomainName/Filename?sign=timestamp-rand-uid-md5hash
TypeB http://DomainName/timestamp/md5hash/FileName
TypeC http://DomainName/md5hash/timestamp/FileName
TypeD http://DomainName/FileName?sign=md5hash&t=timestamp

6、设置参数:根据业务需求填写鉴权密钥、签名参数、有效时间等参数,有效时间不要设置过短,系统会通过请求路径中的时间戳值加上配置的有效时间与当前时间进行对比,判定请求是否过期。

7、配置鉴权对象:鉴权的对象可以是所有文件,也可以是指定后缀的文件鉴权或不鉴权。

8、保存设置:完成上述配置后,点击“保存”按钮,即可开启URL鉴权功能。

示例代码

以下是一个简单的Python示例代码,用于生成不同鉴权模式下的URL:

cdn鉴权配置
import requests
import json
import sys
import time
import hashlib
def generate_url(category, ts=None):
    url = 'http://www.test.com'  # 测试域名
    path = '/1.txt'  # 访问路径
    suffix = '?a=1&b=2'  # URL参数
    key = 'abc123456789'  # 鉴权密钥
    now = int(time.mktime(time.strptime(ts, "%Y%m%d%H%M%S")) if ts else time.time()  # 如果输入了时间,用输入ts,否则用当前ts
    sign_key = 'key'  # url签名字段
    time_key = 't'  # url时间字段
    ttl_format = 10  # 时间进制,10或16,只有typeD支持
    if category == 'A':  # Type A
        ts = now
        rand_str = '123abc'
        sign = hashlib.md5('%s-%s-%s-%s-%s' % (path, ts, rand_str, 0, key)).hexdigest()
        request_url = '%s%s?%s=%s' % (url, path, sign_key, '%s-%s-%s-%s' % (ts, rand_str, 0, sign))
        print(request_url)
    elif category == 'B':  # Type B
        ts = time.strftime('%Y%m%d%H%M', time.localtime(now))
        sign = hashlib.md5('%s%s%s' % (key, ts, path)).hexdigest()
        request_url = '%s/%s/%s%s%s' % (url, ts, sign, path, suffix)
        print(request_url)
    elif category == 'C':  # Type C
        ts = hex(now)[2:]
        sign = hashlib.md5('%s%s%s' % (key, path, ts)).hexdigest()
        request_url = '%s/%s/%s%s%s' % (url, sign, ts, path, suffix)
        print(request_url)
    elif category == 'D':  # Type D
        ts = now if ttl_format == 10 else hex(now)[2:]
        sign = hashlib.md5('%s%s%s' % (key, path, ts)).hexdigest()
        request_url = '%s%s?%s=%s&%s=%s' % (url, path, sign_key, sign, time_key, ts)
        print(request_url)
if __name__ == '__main__':
    # 示例调用
    generate_url('A')
    generate_url('B')
    generate_url('C')
    generate_url('D')

注意事项

配置URL鉴权后,客户端在发起请求时需要按照配置计算签名并携带至服务端,CDN节点进行服务端校验,校验通过后才继续放行。

如果CDN上的URL鉴权功能已经关闭了,但是客户端发起的请求URL里面依然携带鉴权参数的话,就会导致CDN无法把客户端发起的请求URL(带鉴权参数)还原为原始URL,最终所有请求都无法命中缓存,均会透传回源站,导致源站的流量大涨,同时也会增加源站的流量费用,如果需要停止使用URL鉴权,需同时关闭应用服务器和CDN的URL鉴权功能。

远程鉴权仅提供2023年11月8日前已使用远程鉴权功能的用户可用,如控制台不可见此功能可前往EdgeOne接入。

常见问题解答(FAQs)

Q1: 如何验证CDN鉴权配置是否正确?

A1: 可以通过以下步骤验证CDN鉴权配置的正确性:

1、在CDN控制台生成对应的鉴权URL和Timestamp。

2、使用生成的鉴权URL发起请求,观察响应状态码,如果返回200状态码,则说明鉴权配置正确;如果返回403状态码或其他错误信息,则需要检查鉴权配置是否正确。

Q2: 如果需要停止使用URL鉴权功能,应该如何操作?

A2: 如果需要停止使用URL鉴权功能,需要同时关闭应用服务器和CDN的URL鉴权功能,具体步骤如下:

cdn鉴权配置

1、在CDN控制台的鉴权URL设置区域,单击“修改配置”,关闭URL鉴权开关。

2、在应用服务器中去掉请求URL的鉴权参数。

到此,以上就是小编对于“cdn鉴权配置”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1372912.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-12-03 01:00
下一篇 2024-04-30 08:47

相关推荐

  • CDN加速如何有效防止DDoS攻击?

    1、概述CDN架构与防DDoS基础:CDN(内容分发网络)是由分布在全球各地的大量服务器节点组成的网络,这种分布式架构为抵御DDoS攻击提供了天然的优势,因为攻击流量会被分散到多个节点上,而不是集中在源站服务器,CDN的防DDoS机制:当DDoS攻击发生时,攻击流量会分散到各个CDN节点,从而减轻对源站服务器的……

    2024-12-02
    011
  • CDN赚钱真的靠谱吗?揭秘被骗经历!

    cdn赚钱被骗,可能是遭遇了虚假投资或诈骗平台。请立即停止投入,保存证据,及时报警求助。

    2024-12-02
    01
  • CDN.123456是什么?一篇文章带你深入了解!

    您提供的内容似乎是一个 CDN(内容分发网络)的网址或标识符,但没有具体的上下文或问题。如果您能提供更多信息或具体问题,我会很乐意帮助您。

    2024-12-02
    07
  • cdn11111111111是什么意思?

    CDN11111111111是一个虚拟的标识符,用于指代内容分发网络(CDN)技术及其相关概念,CDN是一种通过在全球分布的服务器节点上缓存和分发网站内容的技术,旨在提高用户访问速度、减轻源服务器负载,并增强网站的可用性和安全性,一、CDN的工作原理CDN的工作原理可以概括为以下几个步骤:1、内容缓存:当用户首……

    2024-12-02
    012

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入