V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
captainm
V2EX  ›  程序员

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

  •  
  •   captainm · 2021-06-18 14:28:46 +08:00 · 5133 次点击
    这是一个创建于 1035 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

    3.可以通过云监控的流量监控,当达到阈值后进行告警通知,资源所有者可及时处理和排查。
    mringg
        14
    mringg  
       2021-06-18 18:18:06 +08:00
    cos 就只做存储,流量还是从服务器走
    Jirajine
        15
    Jirajine  
       2021-06-18 18:57:45 +08:00
    得看场景吧,私有内部使用不公开,肯定没有问题。半公开(已登录用户请求)那就带 token 限额,做好账户风控即可。完全公开(公开文件、图床等)只能按 IP 限额,套更廉价的 cdn 也能省一些。
    keyword233
        16
    keyword233  
       2021-06-19 15:01:12 +08:00 via Android
    @andstack 是的,正常状态下 CDN 请求数不计费,
    我的 3 讨论的是恶意用户绕过 CDN 直接打 COS 的情况。
    captainm
        17
    captainm  
    OP
       2021-06-19 15:02:58 +08:00
    @keyword233 感谢你提供的建议,这对我很有帮助。
    我目前的使用场景其实比较简单:一般我使用 markdown 来写笔记,然后使用 PicGo 配合 COS 来做自己的图床(和简单的文件存储),然后把 md 内容贴到博客上去。
    另外,我的域名没有备案,使用的也是境外的服务器,所以使用 COS 做文件存储会对我博客的速度很有帮助。
    captainm
        18
    captainm  
    OP
       2021-06-19 15:05:48 +08:00
    @stimw 我只是用 cos 做图床和简单的文件存储,markdown 写笔记和博客时,这会很方便。另外我的域名没有备案,用的也是境外的 vps,如果想要兼顾速度的话,似乎直接用腾讯云的 cdn 比较好,因为可以不用绑定域名。如果使用其他 cdn,因为域名不备案的关系,第三方 cdn 的境外节点去腾讯 cos 回源,似乎会更慢吧...
    captainm
        19
    captainm  
    OP
       2021-06-19 15:06:43 +08:00
    @yuzo555 是一个好办法,谢谢。
    captainm
        20
    captainm  
    OP
       2021-06-19 15:10:07 +08:00
    @Lampo1225 感谢你提供的思路,这对我很有帮助。
    captainm
        21
    captainm  
    OP
       2021-06-19 15:11:50 +08:00
    @mringg 公司的业务我们就是和你说的一样做的,用服务器去反代存储桶,流量走服务器。
    但我这是个人使用的,用来做图床和简单的文件存储,比如 markdown 写笔记的时候会比较方便
    simplove
        22
    simplove  
       2021-08-30 09:23:30 +08:00
    @stimw 我们套的是百度的 CDN,每天 100G,用百度套的话,必须在 COS 那边添加域名,虽然最后解析到的仍然是百度提供的 CANME,不过可以正常访问。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1468 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:15 · PVG 01:15 · LAX 10:15 · JFK 13:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.