400/403-状态码

最后更新于:2023-08-11 16:44:39

访问CDN加速资源返回403/400状态码

概述

CDN访问出现403状态码通常情况下可能是由以下几种情况导致的,在排查问题时可以打开浏览器开发者模式,切换到Network标签页后,重新请求异常的URL,复现403的问题,然后在Headers下查看CDN返回的Response Header,通过这个信息可以判断是什么原因引起的403错误。本文会对这些情况进行具体介绍。

image.png

CDN鉴权问题

CDN鉴权问题通常表现在没有携带鉴权参数、鉴权过期、鉴权计算错误,需要根据URL鉴权的文档了解鉴权的原理然后去进一步排查和解决。

鉴权过期:CDN开启了鉴权,并且URL携带了鉴权参数,但是鉴权参数过期。

鉴权计算错误:鉴权参数的MD5值计算不正确。

防盗链问题

开启了防盗链功能,但是实际Request Headers请求头中的Referer头不符合防盗链规则导致出现403。而防盗链问题导致的403,在CDN的Response headers中的X-Tengine-Error会返回denied by Referer ACL。具体防盗链问题请参见由于防盗链异常导致访问CDN返回403错误的解决方法。

IP黑白名单问题

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

  1. IP黑白名单问题现象
    • 配置了IP白名单,但是实际访问的客户端IP不在IP白名单里,导致出现403,。
    • 配置了UA白名单,客户端UA不在UA白名单列表里

源站响应403

源站响应了403给CDN,CDN再把403响应给客户端。源站响应的403会报错如下。