Apache-2.2

為什麼 NginX 和 Lighttpd 不受 Slowloris 的影響?

  • April 8, 2017

我正在調查Slowloris的漏洞,我想我理解這種攻擊是如何以及為什麼會起作用的。

我不明白為什麼 Lighttpd 和 NginX 不受影響(根據上面連結的同一篇文章)。他們有什麼不同?

Apache 有一個“最大客戶”理論

這是它可以處理的同時連接數。IE 如果 Apache 伺服器的“最大客戶端”限制為 100,並且每個請求需要 1 秒才能完成,那麼它每秒最多可以處理 100 個請求。

像 SlowLoris 這樣的應用程序將用連接淹沒伺服器,在我們的範例中,如果 SlowLoris 每秒發送 200 個連接,而 Apache 每秒只能處理 100 個連接,則連接隊列將不斷變大並耗盡機器上的所有記憶體,從而將其帶到拖拉。這類似於 Anonymous 的 LOIC 的工作方式。

NGINX 和 Lighttpd(以及其他)沒有最大連接數,它們使用工作執行緒代替,因此理論上它們可以處理的連接數沒有限制。

如果您監控您的 Apache 連接,您將看到大多數活動連接是來自客戶端的“發送”或“接收”數據。在 NGINX/Lighttpd 中,它們只是忽略這些請求並讓它們在後台執行,而不是耗盡系統資源,並且它只需要處理與正在發生的事情的連接(解析響應、從後端伺服器讀取數據等)

實際上我今天下午回答了一個類似的問題,所以那裡的資訊可能對你也很有趣減少 Apache 請求隊列

引用自:https://serverfault.com/questions/281581