Nodejs 中的反应性 IP 阻止,Node 应用程序安全

Reactive IP-Blocking in Nodejs, Node application security

我正在用 Nodejs 编写一个客户端-服务器游戏,我想要一个小的反黑客、反作弊层来阻止或限制检测到的黑客或作弊企图。检测方法不是问题的一部分,但是一旦检测到 Bad IP ,节点如何阻止或限制进一步的连接?

比如有没有封装http服务器的模块可以设置黑名单?或者允许与外部防火墙程序交互的模块?

我的背景:Node 的新手,对 JavaScript、PHP、C++ 和 C 非常不陌生。

如果您不介意包装您的核心 HTTP 实例,您可以使用 ExpressJS and then inject the express-blacklist and 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);
    } 
}));