• 技术文章 >头条

    加了防盗链,Gitee 图床挂了!

    青灯夜游青灯夜游2022-03-29 20:25:43转载487
    1.png

    大家好,我是鱼皮,这两天又发生了一件挺意外的事情:Gitee 的图床废了!

    图床:指储存图片的服务器,便于在网上展示图片

    昨天晚上,星球里不止一位小伙伴发帖子表示自己网站、文章中的图片竟然全部变成了 Gitee 的图标?!

    2.png

    我当时还不了解真相,心想 Gitee 这么大的代码开源平台也能挂?就问小伙伴怎么回事:

    3.png

    我想,如果是官方的问题,那肯定很多用 Gitee 来做图床的项目文档都会受到影响。于是我就去 GitHub 上随便搜了几个项目,果不其然,很多项目文档里的图标都变成了 Gitee。

    千万别小看这个事情的影响!一方面是闹了不少笑话,比如下图这个项目的赞助商,都变成了 Gitee:

    4.png

    还有一些作者的引流、打赏二维码清一色都变成了 Gitee 图标,这就直接影响到作者的收入了!(一天了,作者还没发现,请大家广而告之~)

    5.png

    还有同学的博客变成了这样。。。

    6.png

    于是我先去网上简单调研了一下,有不少小伙伴都遇到了这个问题,那估计就是官方的锅了。

    然后我进入 Gitee,找到自己之前搭建的图床仓库(专门用来存放图片的代码仓库),随便找到一张图片,先进入图片查看页(路径包含 blob),然后点击原始数据查看原图:

    7.png

    通过跳转的方式是能够顺利打开图片的(原图页面的地址不包含 blob):

    8.png

    然后我直接复制图片的地址,刷新页面,结果就看不到图片了。按 F12 来监听网络请求,发现图片请求并没有得到正确的响应,反而得到了一个 favicon.ico:

    9.png

    猜一猜就知道了,这个 ico 文件果然就是 Gitee 的图标!

    10.png

    那为什么从 Gitee 自己的页面跳转到真实图片地址就能显示出图片,直接访问地址就会被拦截呢?

    显然是 Gitee 给图片添加了 防盗链 ,一般情况下,服务端会从客户端的请求头中读取 Referer,通过判断 referer 头是否在白名单中,来决定正常响应图片还是拦截。

    为了验证这点,再做个实验。先用 Firefox 浏览器直接打开 Gitee 图片的真实地址,果然无法显示:

    11.png

    然后我们在 F12 开发者工具中找到刚刚的图片请求,点击编辑并重发:

    12.png

    然后给之前的请求补充上一个 Referer,表示从哪个页面跳转到了目标页面:

    13.png

    果然,图片就成功响应了:

    14.png

    看来,Gitee 这波真的是加了防盗链,事先没有一点儿通知(直到我发文前,也没有通知)。大家纷纷表示傻眼了:

    15.png

    那既然事情已经发生了,无论 Gitee 官方到底是临时还是永久添加了防盗链,我都不建议大家继续使用 Gitee 作为图床(本身它还有 1 M 图片大小的限制)。而是应该使用七牛云、或者腾讯 / 阿里等云服务厂商提供的稳定的对象存储服务。

    对于目前已经受 Gitee 影响的小伙伴,可以做以下几件事:

    唉,想想都麻烦。。。所以条件允许的话,还是建议大家把图片存到自己的服务器(对象存储服务),更安全放心一些。

    教程推荐:《Git教程

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除
    专题推荐:Gitee 图床
    上一篇:“程序员做饭指南”,GitHub热榜第一! 下一篇:oracle严查Java许可,企业连夜卸载JDK
    Web大前端开发直播班

    相关文章推荐

    • JetBrains和Gitlab均表明暂停在俄罗斯的业务,国内网友对此有何看法?• Web3现状如何?能否在政策助推下复刻互联网辉煌?• 首个采用中文编写的操作系统出现了!• “程序员做饭指南”,GitHub热榜第一!

    全部评论我要评论

  • 夏季未央

    人家的东西,想禁就禁,为嘛要通知你

    2022-04-02

  • 取消发布评论发送
  • 1/1

    PHP中文网