2016-07-07 56 views
0

我正在Nodejs中编写一个客户端 - 服务器游戏,我希望有一个小的反黑客反作弊层,可以阻止或遏制检测到的黑客或作弊行为。检测方法不是问题的一部分,但是一旦检测到Bad IP ,Node如何阻止或阻止进一步的连接?Nodejs中的无效IP阻塞,节点应用程序安全

例如,是否有一个模块可以包装可以设置黑名单的http服务器?还是一个允许与外部防火墙程序交互的模块?

我的背景:新来的节点,很不是新来的JavaScript,PHP,C++和C

回答

0

如果你不介意包装你的核心HTTP例如,你可以使用ExpressJS然后注入express-blacklistexpress-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); 
    } 
})); 
+0

很好,我在问什么(谢谢!),但提出了问题:表达速度限制或表达防卫干扰socket.io?这款游戏是一款“实时”多人射击游戏。 – Alderin

+0

它们不应该是因为它们不是使用Socket.io注册的中间件,而是Express,它们只应该影响Express路由。 – peteb