2013-08-21 32 views
1

RESTful服務需要加以保護以防我如何防止針對REST服務

  1. 拒絕服務DoS和暴力破解攻擊(不必要的請求等)
  2. 暴力破解(登錄嘗試等)

攻擊。是否有任何有意義的理由在REST服務內部進行這種預防,或者一般認爲是由防火牆還是較低的OSI級別(例如級別3 - >路由器)來完成。

我認爲REST服務本身的預防比防火牆或路由器要精確得多。這意味着在每個時間單元發出太多請求後,防火牆可能只會在一段時間內阻塞客戶端。在服務端,三次無效登錄嘗試後客戶端可能被阻止。

但我該如何在REST服務端實現這一點。由於REST服務不保留任何客戶端數據,因此需要創建一個靜態緩存或某物。其他。在REST服務中安裝這種攻擊預防措施的建議方式是什麼?

回答

3

外部軟件/硬件。爲什麼?原因很簡單,您希望保護您的服務免受許多不必要的工作負擔,並且當您的服務完成檢查時,您無法保護它,但這隻會讓情況變得更糟。所以DDoS攻擊應該在他們到達你的服務之前停止,因爲當他們這樣做時,他們會吃掉資源。

當然,你可以使用多級安全,而除了防火牆,你可以通過你的服務進行一些檢查,但它應該是額外的解決方案,而不是主要的。防火牆sw/hw旨在處理和阻塞很多負載,您的REST服務不是。

+0

好的。安裝的防火牆阻止DoS攻擊,因此在應用程序端不需要這樣做。因此,只有暴力登錄嘗試需要被服務阻止。但是,它最好的做法是什麼?簡單地在數據庫中保留一個'#failedLoginAttempts'列? –

+1

基本上是。它應該由用戶名或IP地址或兩者來鍵入。在塊時間段結束時清除這些行(它可以防止過度加載數據庫並進行多次嘗試)。儘量不要給攻擊者提示他已經離開了多少次嘗試。記住攻擊者擁有的cookies/headers /瀏覽器代理字符串不信任它們。 – fatfredyy