腾讯云 cos 如何防止恶意刷流量呀

2021-06-18 14:28:46 +08:00
 captainm

参考了腾讯 COS 官方的资料: https://cloud.tencent.com/document/product/436/56651

但是似乎自定义 Header 可以绕过此限制。

大家还有什么好办法吗,怕一觉醒来房子没了(本来也没有房子~~)

5598 次点击
所在节点    程序员
22 条回复
wafm
2021-06-18 14:30:21 +08:00
首先你得说说你的应用场景啊,不清楚应用场景怎么防呢
murmur
2021-06-18 14:32:23 +08:00
国内 d 多了直接进黑洞把,欠不了太多,别人也知道你不会为 ddos 买单,但是 d 一次你要是不买高防可能会拒绝服务
JensenQian
2021-06-18 14:42:25 +08:00
不用呗
stimw
2021-06-18 14:46:37 +08:00
不想被 cos 绑架,那只能被它的 cdn 绑架。

我本来想在 cos 上套 cdn (不是腾讯云的),发现 bucket 默认不带缓存控制,又不支持整体设置头部的缓存制(只能对对象单独一个个设置),境外回源还很贵,直接放弃用 cos 了。
Macv1994
2021-06-18 14:55:58 +08:00
借贴问一下,我的 bucket 就用来存储云服务器备份的数据,会不会存在盗链的问题呢?
walkersz
2021-06-18 15:25:06 +08:00
@Macv1994 不对外开放就不用担心
keyword233
2021-06-18 15:34:31 +08:00
单靠 COS 本身做不到防刷,另外建议 COS 前边一定要有个 CDN,不管谁家的都行,要不然用不起。(据说海外 COS cf 回源也可以减免流量费,不过我没实践过~)
给几个建议:
1. 储存桶改成私有读,然后每次请求自己签名并负责风控。(如果用腾讯云 cdn 的话也可以配置请求自动签名)(用其他 CDN 的话也可以在 ‘Policy 权限设置’ 里放行对应 CDN 回源 IP )
2. 要注意不要暴露 COS 默认源站域名,否则可以轻松绕过你的其它措施高效地刷你流量。(记得在 CDN 上拦截掉除 2XX 以外的所有响应,因为响应中会携带储存桶信息)
3. 事实上如果找到你 COS 桶源站域名,就算你每个请求都鉴权,攻击者也可以靠刷请求次数让你破产~(无效请求也要计费)
yuzo555
2021-06-18 16:30:57 +08:00
COS 套腾讯的 CDN 。
COS 私有读写,CDN 开自动私有鉴权。
然后在 CDN 上面做带宽封顶限制。
yuzo555
2021-06-18 16:31:44 +08:00
@stimw 一般正规的 CDN 都可以统一配置缓存机制、统一配置响应头吧
andstack
2021-06-18 17:03:17 +08:00
@keyword233 咨询过工单,cos 套上 cdn,cdn 请求数不收费
stimw
2021-06-18 17:35:55 +08:00
@yuzo555 我是用 cf 的,如果要统一配置的话就要专门加一条页面规则...我 3 条免费额度已经用完了。cos 的 bucket 不能一起设置缓存标头就不合理。

@keyword233 我也听说回源免费(包括阿里 oss ),cloudflare 官网上有标出这些合作伙伴,但我没有在腾讯云找到关于这个的文档说明...
yuzo555
2021-06-18 17:58:05 +08:00
@stimw 没有这个功能完全合理...
正常情况下完全可以在 CDN 配置缓存规则。
给每一个文件都加上 Cache-Control 响应头这种需求实在太小众了,如果一定要做,可以在上传时就设置(针对 SDK 上传),或者可以设置上传后触发的云函数(针对手动上传),自动给他添加这个响应头。
Lampo1225
2021-06-18 18:03:11 +08:00
@captainm
1.referer 防盗链是一个较低级别的拦截,可以通过客户端拟定 referer 头绕过。不能完全避免。

2.使用签名的方式来防刷,需要用密钥做签名,这个安全级别很高。同时可通过腾讯云 CDN 自动生成回源签名,便于访问。

3.可以通过云监控的流量监控,当达到阈值后进行告警通知,资源所有者可及时处理和排查。
mringg
2021-06-18 18:18:06 +08:00
cos 就只做存储,流量还是从服务器走
Jirajine
2021-06-18 18:57:45 +08:00
得看场景吧,私有内部使用不公开,肯定没有问题。半公开(已登录用户请求)那就带 token 限额,做好账户风控即可。完全公开(公开文件、图床等)只能按 IP 限额,套更廉价的 cdn 也能省一些。
keyword233
2021-06-19 15:01:12 +08:00
@andstack 是的,正常状态下 CDN 请求数不计费,
我的 3 讨论的是恶意用户绕过 CDN 直接打 COS 的情况。
captainm
2021-06-19 15:02:58 +08:00
@keyword233 感谢你提供的建议,这对我很有帮助。
我目前的使用场景其实比较简单:一般我使用 markdown 来写笔记,然后使用 PicGo 配合 COS 来做自己的图床(和简单的文件存储),然后把 md 内容贴到博客上去。
另外,我的域名没有备案,使用的也是境外的服务器,所以使用 COS 做文件存储会对我博客的速度很有帮助。
captainm
2021-06-19 15:05:48 +08:00
@stimw 我只是用 cos 做图床和简单的文件存储,markdown 写笔记和博客时,这会很方便。另外我的域名没有备案,用的也是境外的 vps,如果想要兼顾速度的话,似乎直接用腾讯云的 cdn 比较好,因为可以不用绑定域名。如果使用其他 cdn,因为域名不备案的关系,第三方 cdn 的境外节点去腾讯 cos 回源,似乎会更慢吧...
captainm
2021-06-19 15:06:43 +08:00
@yuzo555 是一个好办法,谢谢。
captainm
2021-06-19 15:10:07 +08:00
@Lampo1225 感谢你提供的思路,这对我很有帮助。

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

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

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

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

© 2021 V2EX