我正在用 Nodejs 编写一个客户端-服务器游戏,我想要一个小型的反黑客、反作弊层,可以阻止或限制检测到的黑客或作弊尝试。检测方法不是问题的一部分,但是一旦检测到错误 IP, Node 如何阻止或限制进一步的连接?
例如,是否有一个封装http服务器的模块,可以在其中设置黑名单?或者允许与外部防火墙程序交互的模块?
我的背景:Node 新手,对于 JavaScript、PHP、C++ 和 C 来说并不陌生。
最佳答案
如果您不介意包装核心 HTTP 实例,则可以使用 ExpressJS然后注入(inject)express-blacklist
和 express-defend
中间件。不过,它们看起来不像 express-rate-limit
那样常用。
如果您不需要列入黑名单而只想对请求进行速率限制,则可以使用 express-rate-limit
这比我上面提到的两个中间件更受欢迎。
请参阅以下中间件片段,了解取自上述文档的express-blacklist 和express-defend。
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);
}
}));
关于javascript - Nodejs 中的响应式(Reactive) IP 阻止、Node 应用程序安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38252655/