首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Meteor:使用ddp-rate-limiter包限制DDP连接

Meteor:使用ddp-rate-limiter包限制DDP连接
EN

Stack Overflow用户
提问于 2015-11-27 22:55:35
回答 2查看 1.2K关注 0票数 0

我试图阻止用户使用Meteor包ddp-rate-limiter太频繁地调用Meteor方法(例如,为了防止垃圾邮件或DOS攻击),但我不能让它工作。

有谁有主意吗?

server/ddpRateLimiter.js:

代码语言:javascript
复制
Meteor.methods({
  dosAttack: function() {console.log("dos");}
});

var preventDosAttack= {
  userId: function() {return true;},
  type: 'method',
  method: 'dosAttack'
}

DDPRateLimiter.addRule(preventDosAttack, 5, 1000);

有了这段代码,我仍然可以随时从客户端控制台运行该方法。(使用for循环测试了100次)

你可以在这里找到完整的源码:opensource project

这里有一个确定的提交:commit

非常感谢你的帮助,

最大值

EN

回答 2

Stack Overflow用户

发布于 2015-11-29 21:20:34

我的错误很简单:它不是'method': 'dosAttack',而是'name': 'dosAttack'。文档MeteorDoc DDPRateLimiter中的示例似乎也犯了同样的错误。我在meteor GitHub页面上创建了一个issue

票数 2
EN

Stack Overflow用户

发布于 2017-09-29 21:36:30

速率限制现在以供应商支持的Meteor包的形式提供。我最近用它创建了Meteor Candy,流星的管理面板。这就是我是如何做到的。

首先,添加包:

meteor add ddp-rate-limiter

第二,定义方法:

代码语言:javascript
复制
Meteor.methods({
    myFancyMethod: function () {
        return true;
    }
})

最后,为其定义速率限制规则:

代码语言:javascript
复制
import { DDPRateLimiter } from 'meteor/ddp-rate-limiter';

var requestLimit = 5;
var requestTimeout = 5000;

DDPRateLimiter.addRule({
    type: "method",
    name: "myFancyMethod",
}, requestLimit, requestTimeout);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33959984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档