大致经过

垂死病中惊坐起😱

image-20230819下午30609530

事情发生在 8 月 8 日凌晨,凌晨三点我突然看见手机上的消息

我一开始是疑惑的,我的 OSS 是用来当做图床的,一个月也用不了几个钱

账号里记得还有 20 多块钱,怎么会这么快用完

然后我进阿里云一看,哇,我被人刷了?

image-20230819下午31250992image-20230819下午31311428

image-20230819下午31405635

最后发现被刷了 3.57 TB,请求了 138 万次

哇,我从没想到过这种事情会发生在我的身上

而且我停机之后他还一直在刷,根本不带停的(

55d88e13ece3787389f2e55c5ca8c71f

我想,算了,300 块交学费得了,以后得好好重视

然后我下午就看见了——

1000 软妹币的账单😭

897cdaf323ff4619efb6bd2975ef2716

1000 RMB!这下真的被上课了😱

f565bb21f42f5915ba0f99219b92dd27

由于账单会有几小时的延迟,很多人说为什么欠费了不自动停,其实等你欠费的时候,人家已经刷完了

这次在我发现的时候,就已经结束了

9ae17dca6a3b4610815e748cccf27cd0

真的太可怕了,直接大出血

花了好久才缓过来劲

可能的原因

我感觉最可能的原因,是我前段时间我写的一个玩具被人发到 Twitter 上了(属于是间接出圈

412e8c4d11403878c10ddb6629e71825

然后就别人盯上了🥹

当时还挺高兴的,这属于是出名的代价吗

寻求客服

最后我想看看找一手客服,其实我是不报希望的,看了一堆案例都是自己承担的

image-20230819下午35242417

结果的确如此,真的是交了 1000 RMB 学费了


解决方案

事已至此,接下来的事情就是寻找解决方案了

在与群友交流和不断 Google 后,我总结了几种比较好的图床解决方案:

  1. 国内云 OSS + 国内云 CDN(如果你很在意国内的访问速度)
  2. 国内云 OSS + Cloudflare(比较推荐的方案,但是国内访问不会很快)
  3. Cloudflare R2(如果你有信用卡)
  4. 某些奇技淫巧

国内云 OSS + 国内云 CDN

主要思路:关闭 OSS 的直接访问,只能通过 CDN 进行访问,并使用 CDN 的流量防护措施

一方面, CDN 的流量更加便宜

另一方面,你可以通过 CDN 对流量进行限制,例如限制总流量,限制最大带宽自动停机,限制 IP qps 等等

当然你也可以说我能在 OSS 上进行防护,比如说防盗链之类的

但这其实防不胜防,真要有人想搞你换个 header 就行,只能限额,而且 OSS 防火墙规则好少

总结:

  • 优点:国内访问快
  • 缺点:需要你同时操心 OSS 和 CDN,而且国内 CDN 域名应该需要备案

教程:这种教程很多,我就贴一个阿里云的吧 使用CDN加速OSS访问

国内云 OSS + Cloudflare

如果你还不了解 Cloudflare,你可以先去了解一下

主要思路:由于阿里云加入了 Cloudflare 带宽联盟,你可以通过 Cloudflare 访问 OSS 中的图片,而无需支付流量费用

我没有实操过这个方案,但是下面是我感觉需要注意的事项:

  1. 必须是非大陆的 OSS 才能走 CF ,比如香港(有人说必须国际站,这个不清楚)
  2. 经历不要让他人发现源 OSS

总结:

  • 优点:只需支付 OSS 的存储费用
  • 缺点:国内访问不会很快

相关链接:

Cloudflare R2

主要思路:使用 Cloudflare R2 代替阿里云 OSS,这也是我最后采取的方案

R2 是 Cloudflare 推出的 S3 兼容的对象存储,最大的特点是就是便宜,量大管饱

e81872a0f282add5b8058c27e41cefd4

他的不是用流量计费的,而是用访问次数计费的,而且每月有免费额度

感觉这个每月 1000 万的读操作额度已经远远超过使用需求(我本次遭受的攻击也就 100万次访问)

并且 10G/月 的免费存储用作图床也是足够的

最大的缺点就是需要绑信用卡,即使你仅仅想使用免费额度也是如此

于是我让群友转了点 USDT,去整了个 OneKey 的卡

image-20230819下午25900887

下面是我当时看的两个教程

关于 R2 的安全性,我感觉是可以放心的,毕竟被刷 cf 肯定不会坐视不管,而且我也配置了一些规则

总结:

  • 优点:理论上不会有任何费用
  • 缺点:国内访问不会很快(你现在看的图片都是 R2 上的,你感觉怎么样👀

其他方案

其他方案,你可以去用一些图床服务,但是我感觉不是很心动

你可能话说放 GitHub 上,但是 GitHub 单仓库 2G,我目前的图片就已经 1G 多了

又或者,还有一些奇技淫巧哈哈哈😂

比如说这个 https://github.com/cf-pages/Telegraph-Image

总结

做好安全防护

一定要做好安全防护哇!

一定一定一定!

就当是我为大家交了学费了,你也保证一下以后不会被交学费了好不好😭

缩减照片大小

群友问的另一个问题就是为什么我的图片这么大

其实也是,我没有压缩处理一下

于是我在 PicGo 里找了一番插件,以后就上传压缩后的图片了

image-20230819下午24432015