2011-08-15 45 views
1

我正在研究Flash網頁遊戲的Java後端 - 客戶端和服務器使用操作消息格式(AMF)進行通信。幾個星期前,我們公司的另一個團隊的產品被反編譯Flash客戶端的用戶黑客入侵,並且使用了一個更改後的版本來欺騙虛假請求的後端。我們希望在新遊戲中防止這種攻擊。防止Java/AMF應用程序中的泛濫/ DOS攻擊

(詳細信息:使用Web服務器是Tomcat的,AMF客戶端BlazeDS的。)

我想知道什麼是最好的辦法,以防止這種攻擊會。有些想法我有:

  • nginx的配置看起來像處理速率限制的最好的地方,但我不能找到nginx怎麼用AMF交互的任何資源。 AMF請求是否直接發送給Tomcat?

  • 大多數請求都涉及相關用戶的userId參數。涉及過度使用userIds的速率限制請求可能是一種方法 - 但是,僅僅想要氾濫服務器的攻擊者可能容易發送垃圾郵件隨機userIds。

  • 和上面一樣做,但使用IP地址代替userIds可以工作。但是,我無法分辨是否可以從AMF請求獲取IP地址。

+0

首先,當有人反向設計客戶端時,它不會被稱爲黑客攻擊,您是否確定客戶端是反向設計的?它可能就像一個剛剛製作一個閃存文件的人在您的服務器IP上傳播AMF一樣。 但爲了有所幫助,您需要爲每個客戶端設置一個會話,並確保跟蹤會話並斷開發送洪水數據的任何人。 http://en.wikipedia.org/wiki/Universally_Unique_Identifier 這應該有助於您瞭解如何分隔客戶端的概述(如果您尚未分類)。 – 2011-08-15 06:28:24

+0

然後,您當然需要跟蹤傳入的數據,並且如果客戶端氾濫或提出錯誤請求,請斷開連接或阻止它們。 – 2011-08-15 06:34:11

回答

0

您的Java應用程序應將唯一標識符傳遞到主機操作系統的防火牆並阻止該客戶端。通過這個動作,你將能夠阻止你的應用程序處理它不應該做的事(作爲防火牆)。