rocketchat 防爆破 及 报错 Error, too many requests. Please slow down. You must wait 60 seconds before trying again
背景
用docker部署了一个rocketchat服务,跑了两年了
一直有一个问题:在登陆页面可以无限连刷,这怎么行?外网的服务很容易就被爆破了,
在管理页面有个 Rate Limiter 的配置项,可以限制请求频率,可是频率无论调到多小都不生效。
去issue 找了下确实有人问这个问题,然而并没有解决方案
今天20120106想到这个问题,尝试更新下看看是不是已经解决了
docker pull rocketchat/rocket.chat:latest
docker-compose stop rocketchat
docker-compose rm rocketchat
docker-compose up -d rocketchat
问题
然后登陆rocketchat, 报错 Error, too many requests. Please slow down. You must wait 60 seconds before trying again
???这是修复好了,但自己被限制在系统外了,当初设置的请求频率很小😱😱😱
再去issue找下,没找到解决方案。。。
只能自己想办法把limiter disable了
把源代码下载下来看谁报的错

meteor/ddp-rate-limiter
进入docker实例看到了部署方式

这样的话,,只要把部署的代码
if (rateLimitResult.allowed) { return fn.apply(null, args); }
中的ateLimitResult.allowed替换成true就可以实现关闭限制的效果了
先把部署容器里的/app备份出来
docker cp rocketchat_rocketchat_1:/app /bk/
然后把代码中的判断全部替换掉
sed -i 's/rateLimitResult.allowed/true/g' `grep 'rateLimitResult.allowed' /bk/app/* -rl`
接着更改docker-compose.yml用我们改过的代码启动

重新启动应用
docker-compose stop
docker-compose up -d
现在登陆后台页面就没有报错了,进入管理页面的Rate Limiter 配置,直接使用默认的先

保存好了,再把我们的docker-compose.yml改回来去掉 - /bk/app:/app 这个挂载配置
重新启动就好了,如果后面又把自己封在外面就再操作一次。
而现在你再想着从登陆页爆破也不可能了😀😀😀

disable ddp rate limiter

浙公网安备 33010602011771号