你们是怎么防止云服务被刷的,例如对象存储

2023-11-27 10:39:31 +08:00
 SculptureSand
其实我有几个可行的思路

先简单说下我会用到的云服务

我准备写一个文件分享网站,类似文叔叔、轻松传、空投

前端:Vue3 ,部署到 Vercel
后端:Flask ,部署到函数计算 FC(阿里云)
存储:对象存储 OSS(阿里云)
数据库:SQLite ,部署到文件存储 NAS(阿里云)

已知阿里云默认无法暂停 OSS 、函数计算,OSS 支持单链接限速,除此外只有访问相关的限制

一旦被刷,只能依靠不靠谱告警

我的解决方案

1. API 网关+云监控(可选)
2. OpenAPI+自写监控
函数计算里写一个检测,一旦达到检测值则调用 OpenAPI ,关闭对应 DNS 解析,达到更危险的值则删除服务(前提做好备份)

这两种方式都是低成本对抗恶意盗刷,采取的做法是暂停、删除服务,适合个人开发者和不考虑可用性的项目

除此外有什么好的方式吗,DDOS 防护、WAF 防护、其他防护,低需数百,高则数万每月,实在不是个人开发者能考虑的
8241 次点击
所在节点    云计算
59 条回复
SculptureSand
2023-11-27 11:29:50 +08:00
@vueli 这也太恶心了,所以公益图床这种真的难做
NX2023
2023-11-27 11:30:41 +08:00
我使用 Cloudflare R2 ,免费量大管饱,就是国内很慢((
hongfs
2023-11-27 11:31:03 +08:00
1. 函数计算可以设置实例上限,比如设置成 1. 另外我们压测的结果,开了 300 个实例,QPS 也只能到 1W ,同一个程序在低配 ECS 可以跑到 40W/QPS 。。( fc3 还没办法使用 jwt 验证,fc2 是正常的,jwt 验证不通过是不收钱的)
2. OSS 一定要套一层 CDN ,成本下降是非常明显的,除非你访问就只有一次。另外有程序通过 CDN DescribeDomainRealTimeTrafficData API 接口来获取五分钟内的流量,达到告警值后发送告警信息,达到两倍告警值后直接下架域名。
woshinide300yuan
2023-11-27 11:31:03 +08:00
我选择晚上睡得着的方式,backblaze+cloudfare 组合,1TB 每月存储花 6 刀,不计费流量。
免费的服务我不想整的太积极,还套国内 CDN ,都是白嫖的,不至于不至于。
SculptureSand
2023-11-27 11:35:29 +08:00
@hongfs 设置成一也挡不住鼠标连点器在大半夜点我哈哈哈哈,不过这样应该也刷不了多少,感谢数据

另外达到两倍告警下架域名是怎么操作的,告警触发函数计算,调用 OpenAPI 让制定记录暂停,这样吗
zhusimaji
2023-11-27 11:38:26 +08:00
目前是防盗链
SculptureSand
2023-11-27 11:40:46 +08:00
@woshinide300yuan 我比较向往文叔叔那样的网站。文件分享部分做好限制,公开,自然状态也不太可能被广泛知道,以后开发出网盘部分也最多是邀请制

主要函数计算默认域名无法关闭,他默认公网域名虽然会强制变成下载返回值,但只要泄漏了还是能刷,身边到处被阿里云埋了炸弹是真睡不着啊
hongfs
2023-11-27 11:42:00 +08:00
@SculptureSand #25 类似你 FC 有个一分钟的定时器,触发后会去查询 CDN 的数据,下架也是 openapi 接口。。

主动告警只能在云监控那边配置,但它有十分钟的延迟。https://next.api.aliyun.com/api/Cdn/2018-05-10/DescribeDomainRealTimeTrafficData 这个可以查到前一分钟的。
SculptureSand
2023-11-27 11:47:49 +08:00
@hongfs 函数计算也有主动告警,比较简易。云监控应该功能更强大

这和我上面讲的两种方式看起来原理一样,感谢

看起来 CDN 、防盗链、单链接限速、自写监控/API 网关,这几个就是付费服务外最好的防刷策略了
myqoo
2023-11-27 11:52:28 +08:00
网站发出来让大家压一压,验证能不能抗住- -
SculptureSand
2023-11-27 11:53:20 +08:00
@myqoo 站里搜 OSS ,有个老哥压一压被刷了 4.7T 流量,我真的没蚌住
zliea
2023-11-27 11:54:35 +08:00
“只供自己和朋友们使用,公开但不宣传。”
oss 那就设置为私有,生成过期的链接使用不行么?
zliea
2023-11-27 11:56:56 +08:00
理论上“文件分享网站”如果仅是几个人使用,OneDrive 了解一下?
leaflxh
2023-11-27 11:57:26 +08:00
说点有用的

1. 用腾讯云/阿里云的 CDN ,回源 OSS 。同时 OSS 必须设置私有访问(防 OSS 被刷爆)

2. CDN 开启禁止国外 IP 访问(国外带宽大,用个几台 vps 就可以刷爆 CDN 。增加攻击门槛)

3.开 Referer 检查,禁止空 Referer (防止别人用工具一键刷爆,但作用有限)

4.设置单 IP QPS ,设置单线程下行带宽峰值。QPS 以视单页面最大的资源数为主(防止几个 IP 刷爆 CDN 。增加攻击门槛)

5.开启单位时间内流量超额下线 CDN ,比如 5 分钟内流量消耗 5G 则下线 CDN (防止不知道被刷,让人连续刷上几个小时)

最后再祈祷云厂商的统计周期没有延迟(你的账单仍然握在云厂商的手中)


烈士墙:(以下均没做好以上措施(不代表以上措施完美无缺))

让帮我测试发消息,确给我 oss 刷了 4.7TB 的流量
https://www.v2ex.com/t/993823

被刷 7Tb+.追根溯源,找到凶手,谨防 LOC 论坛小人.长图文
https://hostloc.com/thread-1224989-1-1.html

连续剧
https://hostloc.com/thread-999175-1-1.html
https://hostloc.com/thread-1003459-1-1.html
https://hostloc.com/thread-1016347-1-1.html
https://hostloc.com/thread-1225063-1-1.html
dcsuibian
2023-11-27 11:59:43 +08:00
用腾讯云呗,腾讯云支持暂停 COS/CDN 的
YDCHYD
2023-11-27 12:32:28 +08:00
你用 cdn 的话,请求次数也是收费的。而且防 cdn 被刷太难了
myqoo
2023-11-27 12:34:29 +08:00
CDN 不限速的话,用 TCP 漏洞单机就可以每秒可以刷几 GB ,一天可以刷几百 TB 。(当然很快就会欠费停机~)
iamwin
2023-11-27 12:45:39 +08:00
对象存储桶设置成私有,然后后端用 api 去调,你就可以随意加限制了,开共有早晚会被刷爆的
zictos
2023-11-27 12:56:09 +08:00
有点不敢用,既不支持用量限制,也不支持实时计费,只能尽量不用了。本来如果计费足够实时的话少充点钱就行,尽量不要造成欠费太多
n18255447846
2023-11-27 13:10:17 +08:00
- cdn ,流量不要钱的嘛
- 防盗链,还分享个鬼

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/995478

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX