twikoo icon indicating copy to clipboard operation
twikoo copied to clipboard

被恶意攻击

Open L1cardo opened this issue 3 years ago • 5 comments

网站被恶意攻击,导致免费的每日次数被使用光 我联系腾讯云,他们说加入鉴权可以解决,希望可以加入 image

【链接】云开发CloudBaseHTTP访问服务鉴权-开发指南-文 https://cloud.tencent.com/document/product/876/44225

  1. 改用SDK中的callFunction调用云函数,callFunction会自动判断域名是否在安全域名中,不在的会直接拒绝调用云函数 2.用鉴权https://docs.cloudbase.net/service/authentication.html 需要在发起访问的请求头中添加头部信息,头部信息需要通过auth.getHeader()来获取,获取好之后不带鉴权信息的请求就会被拒绝
  2. 通过参数实现频繁被刷,在云函数中开始增加判断信息,比如想要访问这个云函数必须带某个参数,如果不带参数进行访问,直接return回去,不执行下面的业务逻辑代码

L1cardo avatar Mar 27 '21 05:03 L1cardo

  1. twikoo是通过callFunction调用云函数的,是有这个防护的。
  2. twikoo需要首先进行一个“匿名登录”才可以发起请求,所以这个防护也是有的。
  3. twikoo云函数是需要传入参数的,不传入不执行操作。

以上,这三点建议twikoo其实都已经做到了,无法继续优化。根据截图得知是数据库读取次数被刷了,这个作者目前也没有好的防护方案(类比DDoS,只要有人不断地发送请求,就总有一刻会耗尽服务器资源),有朋友可能会说IP限流,但IP限流也需要一个比如Redis的缓存数据库才能实现,Redis无法免费搭建,这违背twikoo免费的初衷。

imaegoo avatar Mar 27 '21 06:03 imaegoo

云函数和数据库都被高请求了,没有其他防御的办法吗? 没有的话就暂时关闭博客评论功能了 image

L1cardo avatar Mar 27 '21 07:03 L1cardo

唯一靠谱的就是IP限流了,但目前在云函数上做到完美的IP限流是不可行的,攻击者仍然可以刷云函数资源。不好意思。

imaegoo avatar Mar 27 '21 07:03 imaegoo

好的,感谢回复

L1cardo avatar Mar 27 '21 07:03 L1cardo

把数据库直接暴露在外面本来就比较容易被刷完。。。EnvID暴露在外就容易被刷,其实这就又回到Valine的困境

但毕竟免费的评论系统吗。。。这种暴力强刷本身对攻击者也是一笔支出,基本是无解的【除非还来Worker中继?】

ChenYFan avatar Apr 11 '21 02:04 ChenYFan