一切的起因是我准备更新免费节点喵,当时我突然发现图片加载不出来啦喵qwq
我还在想:“为啥加载不出来啊喵?”于是我刷新了一下,又跑了下梯子测速
我以为是梯子的问题喵,因为当时链接的线路出现了不可用啦喵
但是换完线路之后,发现还是不行喵!
我首先想,我图片怎么没了(我以为是404)喵?于是我尝试直接访问了一下,发现并没有问题喵
接着我就在想,会不会是网站的跨站请求(防盗链)问题喵,这里可以用curl命令进行快速判断的喵
通过:
curl -I -H "Referer: https://imgs.977958.xyz/" https://imgs.977958.xyz/uploads/688f160d21f55_IMG_20250803_155546.jpg
curl -I -H "Referer: https://moe.one/" https://imgs.977958.xyz/uploads/688f160d21f55_IMG_20250803_155546.jpg
tips:
curl -I -H "Referer: https://imgs.977958.xyz/" https://imgs.977958.xyz/uploads/688f160d21f55_IMG_20250803_155546.jpg
其实可以直接换成:
curl -I https://imgs.977958.xyz/uploads/688f160d21f55_IMG_20250803_155546.jpg
效果是基本一样的喵
这不就排出问题所在了喵?大概率是因为防盗链的原因喵,因为当来源为源站时或者直接访问可以正常访问的喵,但是一换成萌社区这些外部来源引用图片就会报403,这种情况一般就很像触发了防盗链机制喵!,但是我检查面板发现我根本没开防盗链啊喵!!
于是捏我开始更深度的排查啦喵
使用curl -v 命令,
curl -v 命令用于在终端中发送 HTTP 请求,并显示详细的请求和响应信息
简单来说这个会显示更详细的信息啦喵
下面是调用方法示例与详细记录讲解喵
curl -I -v -H "Referer:"https://moe.one/"https://imgs.977958.xyz/uploads/688f160d21f55_IMG_20250803_155546.jpg
curl -I -v -H "Referer:"https://imgs.977958.xyz/"https://imgs.977958.xyz/uploads/688f160d21f55_IMG_20250803_155546.jpg
这次就能直观看出是cf的问题啦喵,下面我大概讲一下啦喵
我们把请求方想象成一只小猫娘(为了方便后面就叫小猫)在发送请求喵
响应(失败):
HTTP/1.1 403 Forbidden
小猫说:“我要这条鱼干(图片)喵!”
然后拿出了会员卡:Referer: https://moe.one/(意思是“我从 moe.one 来的喵!”)。
店员(CF)看了看说:“进不去哦!这张会员卡不对呢喵。”
于是小猫就被拒绝了,拿不到鱼干。
下面稍微解析一下后面喵(困了,编不下去了喵)
再看看返回头喵:
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
店员告诉大家别保存这条拒绝消息(不要缓存 403等错误,这个我是设置了喵)。
Vary: referer
超重要!店员会根据你带的会员卡(Referer)来决定放不放你进去喵。
说明“防盗链 / Referer 检查”正在参与判断喵。
Server: cloudflare 和CF-RAY: 97638e3a28992f4c-LAX
证明是 Cloudflare 店员说的,不是源站哦喵
小结(失败):证明这个是Cf店员拒绝的,而不是源站哦喵~
响应:
主题数 12 |
帖子数 220 |
精华数 0 |