我正在Nodejs中编写一个客户端 - 服务器游戏,我希望有一个小的反黑客,反作弊层,可以阻止或限制检测到的黑客或作弊尝试。检测方法不是问题的一部分,但一旦检测到错误的 ,Node如何阻止或限制进一步的连接?
例如,是否有一个模块包装了http服务器,您可以在其中设置黑名单?或者是允许与外部防火墙程序交互的模块?
我的背景:Node的新手,非常不是JavaScript,PHP,C ++和C的新手。
答案 0 :(得分:1)
如果您不介意包装核心HTTP实例,可以使用ExpressJS然后注入express-blacklist
和express-defend
中间件。但是,它们看起来并不像express-rate-limit
那样常用。
如果您不需要黑名单,只想对限额请求进行评分,则express-rate-limit
这比我上面提到的两个中间件更受欢迎。
请参阅以下中间件片段,了解明确黑名单和明确保护,取自上述文档。
var expressDefend = require('express-defend');
var blacklist = require('express-blacklist');
app.use(blacklist.blockRequests('blacklist.txt'));
app.use(expressDefend.protect({
maxAttempts: 5,
dropSuspiciousRequest: true,
logFile: 'suspicious.log',
onMaxAttemptsReached: function(ipAddress, url){
blacklist.addAddress(ipAddress);
}
}));