专栏首页腾讯云 CDN 专家服务403错误怎么办?六种原因帮你精准定位
原创

403错误怎么办?六种原因帮你精准定位

简介:使用腾讯云CDN加速站点访问后出现403错误,通常情况下可能是由域名配置、CDN 安全策略以及源站响应 403 导致。本文详细介绍了 CDN 常见的引发403错误的问题场景。

1.1 CDN鉴权问题

CDN鉴权问题通常表现在没有带鉴权参数、鉴权过期、鉴权计算错误,需要根据URL的鉴权文档了解鉴权的原理,然后去进一步排查和解决。目前腾讯云控制台提供4种鉴权方式可供选择,具体可以参考文档:https://cloud.tencent.com/document/product/228/41622

1.1.1 CDN开启了鉴权,但是实际访问的url里面没有带鉴权参数,访问会报错403

例如:

这里以typeD鉴权为例进行演示

可以看出不带鉴权参数访问会直接返回403

1.1.2 鉴权参数过期

CDN开了鉴权,并且url带了鉴权参数,但是鉴权参数过期,那么会返回一个error为1的错误码

例如:

这就表示鉴权参数过期了,需要重新计算时间戳啦。

1.1.3鉴权参数的MD5计算不正确

若带了参数的url,但是MD5校验不正确,也是会返回403的,同时会有一个error为-5的错误码

例如:

通过返回的错误码即可快速判断403问题所在啦

注意:设置鉴权的有效时间说明

当设置为0时,表示当前时间过期

例如,鉴权参数带的时间戳为1605247592表示2020/11/13 14:06:32 ,当本地时间到达这个时间时,那边该参数即过期

反之,若设置为2200,则表示1605247592该时间往后的2200秒内鉴权有效,超过了2200秒即过期。

CDN控制台提供了鉴权计算器功能,方便我们计算和校验鉴权是否计算有误,还是挺不错的功能的。

鉴权导致的403解决方案

1、如果不需要CDN的鉴权功能,可以在CDN控制台关闭鉴权

2、如果鉴权过期,请重新生成鉴权url

3、如果鉴权MD5计算不正确,可以通过鉴权计算器生成的url对比自己的鉴权代码来排查计算出错的问题

1.2 防盗链问题

开启了防盗链功能,但是实际的请求头里面的referer头不符合防盗链规则导致失败,因防盗链问题导致的403.

Referer防盗链的类型如下:

黑名单:黑名单内的域名均无法访问当前的资源

白名单:只有白名单的域名才可以访问当前资源

黑名单和白名单互斥,同一时间只支持其中一种方式生效。

例如:设置白名单加不勾选空referer

空refer会返回403

不在白名单的refer也会403

只有在白名单的refer才可以正常访问

若需要url能直接在浏览器中访问,需要勾选允许空refer哦。

1.3 ip黑白名单问题

在CDN控制台配置了ip黑白名单,实际访问的ip不符合配置规则,导致出现 403

常见问题:

问:为什么配置了 IP 黑名单,还是可以正常访问,响应 200,而不是 403 ?

答:这种情况一般都是客户端真实出口 IP 跟 IP 黑名单里配置的 IP 不一致导致 的。建议获取客户端真实出口 IP,可以通过 IP 工具查询;也可以通过下载 CDN 的 日志,从CDN的日志去查找这条请求,CDN 的日志里记录了客户端 IP。

问:发现恶意请求的情况,把恶意请求的客户端 IP 配置到黑名单了,为什么还是不断有请求 CDN ?

答:CDN 作为一个服务端,无法控制客户端不请求CDN,CDN 能做的是当恶 意请求到 CDN 的时候,CDN 根据配置的安全规则拒绝不合法的请求,以 403 的形式拒绝访问。

1.4 UA黑白名单问题

配置了 UA 黑白名单,User-Agent 名单类型如下:

黑名单:黑名单内的 User-Agent 字段均无法访问当前资源。

白名单:只有白名单内的 User-Agent 字段能访问当前资源,白名单以外的 User-Agent 字段均无法访问当前资源。

黑名单和白名单互斥,同一时间只支持其中一种方式生效。

例如:配置UA黑名单

非黑名单UA可以正常访问

黑名单的ua则返回403

1.5 URL违规被封禁

403的URL涉及违法不良信息,违反了相关服务协议和《互联网信息服务管理办法》的规定,这种情况下违法 URL 会被 CDN 做屏蔽访问处理。通常这种情况会收到站内信或短信通知,请注意确保 CDN 加速的内容是合法的内容。

1.6 源站响应403

源站响应了 403 给 CDN,CDN 再把 403 响应给客户端。

一般来说,腾讯云CDN响应头中的server头会带有NWS标示。若403返回的server头非NWS,则可以检查下源站配置。

1.6.1源站自有源

可以绑定 Host 到源站访问测试是否一样存在 403 的情况,如果源站就有 403 的情况,需要先解决源站的 403 问题。另外还有一点需要注意,CDN 的回源 Host 配置错误也可能导致 403 错误。回源 HOST 跟源站的区别就是,源站决定了回源

时请求到的具体 IP 地址,而回源 HOST 决定了回源请求访问到该 IP 地址上的具体站点

1.6.2 源站是腾讯云COS

如果源bucket的访问权限是私有权限,但是没有开启回源鉴权的话,那么就会导致CDN回源请求COS的时候通不过COS的鉴权导致403

可以在接入CDN的时候开启授权服务。

也可以在对象存储控制台中开启对应选项

例如:

未开启前访问403

开启之后:

最后

以上是针对接入CDN的常见403问题的一些原因,希望能在各位读者的有所帮助。若有不对之处,欢迎及时指出。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 程序员五一被拉去相亲,结果彻底搞懂了HTTP常用状态码

    前一阵子好不容易来个实习生小姑娘,分给小星带,小星高兴坏了,结果姑娘没呆三天,受不了公司的九九六跑了。

    三分恶
  • Nginx location 匹配顺序整理

    Nginx location模块整理 具体的Nginx安装就不在这里描述了,这里只是为了对location的描述 Nginx环境 a. 查看当前系统cat /e...

    coders
  • 江晓东:企业如何做一个成功的大数据项目

    分享老师:江晓东 世界500强企业咨询师、曾担任奥巴马政府经济刺激计划MAMP项目顾问

    华章科技
  • 【译】HTTP错误码403禁止:意味着什么,怎么修复它

    在上网的时候,收到任何的错误码都是让人沮丧的体验。尽管我们已经习惯于404页面找不到,我们在页面迷失的时候,看到可爱的占位符来娱乐我们是很常见的事情了。但是有种...

    嘉明
  • 纯干货!如何做一个成功的大数据项目

    ? 1 失败大数据项目的特征 根据在美国做了15年的大数据项目、产品研发和管理,以及其它一些相关的数据分析的工作经验,了解到的其它的做的比较成功的和失败的项目...

    灯塔大数据
  • 分享1个爬虫小案例,还能语音播报!

    要用到requests库,lxml库,pyttsx3库,没有的,可以先安装一下,都可以通过pip安装:

    double
  • 如何深入学习C语言?

    疑惑一 遇见编译错误了咋办? 经常见有小伙伴,呼呼的把一大段的编译错误呈现在群里,然后问这是啥原因,其实解决编译的办法还是挺多,现在重点说下编译错误是怎么出来的...

    程序员互动联盟
  • WordPress 面对恶意请求、恶意登录的基本安全防御措施

    今天明月给大家分享一下 WordPress 站点的基本安全防御措施,这些都是明月多年使用 WordPress 的经验总结,至少都是“实测有效”的,甚至不少还是明...

    明月云服务
  • 让你的Django应用变DRY的几个最佳实践

    Django和Django REST framework(后简称DRF)提供了海量的全局配置、局部配置,来实现上述思想,但配置项太多了,有时人们往往不知道该如何...

    岂不美哉Frost
  • ngx_lua_waf针对性改写

    当初选择ngx_lua_waf作为自己的WAF,主要原因就是因为其可扩展性与性能上有一个很好的平衡。

    phith0n
  • K8S dashboard 2.0 安装配置并使用 ingress-nginx 访问

    官网地址:https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboar...

    烂猪皮
  • 精讲响应式WebClient第5篇-请求超时设置与异常处理

    本文来为大家介绍一下,当WebClient请求发生异常的时候,该如何处理。为了讲解异常处理,我们需要先制造出异常,所以我们先为大家介绍:请求超时时长的设置。

    字母哥博客
  • 谁动了我的Token | TW洞见

    今日洞见 文章作者/配图来自ThoughtWorks:禚娴静。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网...

    ThoughtWorks
  • “狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作

    GitHub上,这个富有灵魂的项目名吸引了众人的目光。项目诞生一周,便冲上了趋势榜榜首。

    磐创AI
  • 我在 GitHub 上发现了一个 "狗屁不通" 的开源项目...

    GitHub 上,这个富有灵魂的项目名吸引了众人的目光。项目诞生一周,便冲上了趋势榜榜首。

    GitHubDaily
  • RESTful API 最佳实践(阮一峰)

    它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。

    用户1257393
  • RESTful API 最佳实践(阮一峰)

    它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。

    java思维导图
  • RESTful API 最佳实践

    它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。

    ruanyf
  • RESTful API 设计规范

    它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。

    一个优秀的废人

扫码关注云+社区

领取腾讯云代金券