我试图阻止用户使用Meteor包ddp-rate-limiter太频繁地调用Meteor方法(例如,为了防止垃圾邮件或DOS攻击),但我不能让它工作。
有谁有主意吗?
server/ddpRateLimiter.js:
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
非常感谢你的帮助,
最大值
发布于 2015-11-29 21:20:34
我的错误很简单:它不是'method': 'dosAttack',而是'name': 'dosAttack'。文档MeteorDoc DDPRateLimiter中的示例似乎也犯了同样的错误。我在meteor GitHub页面上创建了一个issue
发布于 2017-09-29 21:36:30
速率限制现在以供应商支持的Meteor包的形式提供。我最近用它创建了Meteor Candy,流星的管理面板。这就是我是如何做到的。
首先,添加包:
meteor add ddp-rate-limiter。
第二,定义方法:
Meteor.methods({
myFancyMethod: function () {
return true;
}
})最后,为其定义速率限制规则:
import { DDPRateLimiter } from 'meteor/ddp-rate-limiter';
var requestLimit = 5;
var requestTimeout = 5000;
DDPRateLimiter.addRule({
type: "method",
name: "myFancyMethod",
}, requestLimit, requestTimeout);https://stackoverflow.com/questions/33959984
复制相似问题