2012-12-04 24 views
3

我使用節點和每行代碼我寫的跨越很多的怎麼會有人破壞我的節點工藝的想法上的幾個項目的工作了。node.js中如何處理故意大(壞)的HTTP請求

現在,我想這:

require('http').createServer(function(req, res)) { 
    //DEAL WITH REQUEST HERE 
    }.listen(port, net); 

這是標準的代碼用於建立服務器和處理請求。

比方說,我要推翻該節點的過程,我可以發送POST請求與他們和node.js的數據負載會在收到所有的人都花費大量的時間(和帶寬)。

有沒有辦法避免這種情況?

PHP優點:你通常如何處理?

有沒有辦法告訴節點或PHP(也許阿帕奇)只是忽略來自某些IP地址的請求?

回答

1

可以限制HTTP請求的大小。 這是您可以使用的中間件。

https://github.com/senchalabs/connect/blob/master/lib/middleware/limit.js

http://www.senchalabs.org/connect/middleware-limit.html

附:可能性重複maximum request lengths in node.js

要獲取node.js中的IP地址,您可以嘗試request.connection.remoteAddress

+0

particuarly對我來說,這不會幫助那麼多BC我寫的圖像上傳;我認爲我應該提供至少10MB,甚至攻擊者可以發送100個10MB POSTS,然後我的1GB帶寬 – almosnow

+0

如果您提供圖像上傳服務,您應該期望使用大帶寬。 當然,您可以在讓用戶上傳之前執行IP過濾。 –