2016-07-07 38 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