2009-12-23 157 views
2

我有一個不斷攻擊我的網站之一的漫遊器/黑客的IP地址列表。我想通過知識產權阻止這些訪問者,並試圖爲此制定出「最佳」方法。我的網站使用C#ASP.NET MVC。禁止通過禁止的IP地址訪問網站

我有一個IP的List<int>

放置校驗碼的最佳位置在哪裏?我正在考慮使用母版頁的Page_Load事件,但也可以將它放在每個控制器的篩選器中...

什麼HTML會返回到禁止的IP?我不願意返回「因爲您的IP被禁止而被阻止的網站」,因爲這會給黑客提供他們需要的信息來解決該問題。這樣做的好處是它可以讓無辜的用戶在交火中陷入無法訪問該網站的原因。我目前的感覺是,我應該返回一個「正在維護的網站」通知。

什麼HTTP狀態碼應該返回假「維護站點」通知?我想200

網站的服務器2003

+0

如何將IP納入列表? :) – Ariel 2009-12-23 17:07:48

+2

IP地址是一個32位序列。巧合的是,'System.Int32'也是如此。請注意,IP地址通常以特定格式表示爲文本:十進制表示中的八位字節並以句點分隔。 – yfeldblum 2009-12-23 17:10:38

+0

對於那些有興趣的方法,將IP轉換爲Int - > http://www.justin-cook.com/wp/2006/11/28/convert-an-ip-address-to-ip-number-with- php-asp-c-and-vbnet/ – Nate 2009-12-23 17:55:13

回答

2

雖然你可能會阻止您向外的服務器上的IP地址(你的web服務器很明顯,但你可能有其他的),這個列表將需要被複制。通過阻塞服務器,您不僅可以使解決方案過於複雜,而且還提供了一種不完全安全的方法。

阻止網絡流量的正確點,無論是端口選擇列表還是IP地址,都可以在網絡上儘可能遠地獲得。這通常是入口點的防火牆/路由器。這些網絡設備針對這個目的進行了優化,並且遠遠超出了這個目的。取決於您的網絡設備的製造商,功能集將會有很大的不同。

我建議你:

  • 確定所有路由器/在 最外層邊界防火牆。這是可能的 你只有一個,除非你加載 平衡。
  • 瞭解如何爲這些 設備配置ACL (訪問控制列表)。
  • 根據您的IP 地址列表修改ACL以阻止。
  • 總是在其他地方保存您的網絡備份 設備配置。

顯而易見這只是安全的冰山一角。也許在某個時候,你需要與DOS(拒絕服務攻擊)相抗衡,然後一些 - 哦,很有趣。

祝你好運。

12

上運行如果你覺得從一個特定的IP您的網站被「黑客」,你不應該阻止該IP的軟件,非常的事,他們打算妥協。阻止的IP應該在防火牆處被阻止。

+4

或者如果你不能在防火牆中做到這一點,在IIS中執行。 – 2009-12-23 17:03:59

+0

優秀的建議。 – 2009-12-23 17:04:23

+0

那麼我如何在IIS或防火牆中做到這一點?另外你會返回到阻止的IP? – Guy 2009-12-23 17:08:11

3

由於以下幾個原因,我不得不同意David的看法。

  1. 通過阻止軟件黑客/機器人將仍然能夠濫用您的資源(帶寬,處理器時間等)。

  2. 軟件不能保護您的網站免受DOS攻擊。

  3. 如果黑客好,他們會找到解決軟件塊的方法。

  4. 更新阻止代碼將需要重新編譯您的應用程序。

你的答案在防火牆中。設置規則阻止用戶,他們將無法連接。

發送一個「正在維護」頁面是一個可怕的想法,因爲它會混淆普通用戶並不會阻止一個好的黑客...

+0

如果普通用戶是無辜的受害者,他們將不會被混淆通過阻止在防火牆以前濫用的IP地址?即您必須將某些東西返還給客戶端?那是什麼? – Guy 2009-12-23 17:11:31

+0

Guy: @ 1:請參閱http://www.google.com/search?q=block+ip+address+iis @ 2:將其留給瀏覽器。它會吐出一條好消息,例如「Firefox無法建立與的服務器連接」。 – reinierpost 2009-12-23 17:31:46

+0

沒有「漂亮」的方式來顯示這樣的消息。更好地使用IP地址來避免誤報 – Ariel 2009-12-23 17:35:05

2

我會把代碼放在一個儘可能快的地方,在服務器消耗太多資源之前。

我想說你應該儘可能少地發回信息,最好是HTTP狀態503(暫時不可用),用一條短消息鏈接到一個可接受的頁面,或者一個頁面向人們解釋爲什麼他們可能會有一些原因阻止,如果他們覺得他們被阻止不公平,該怎麼辦。您可能希望以文本/純文本而不是HTML來執行此操作,因爲它將使用較少的字節:)

當您有大量阻止的地址(例如100萬)時,使用阻止的IP的內存列表也會中斷,因爲掃描它變得過度(記住,您需要爲相關資源的每個請求執行此操作)。

最終,您將需要一種方法將阻止的IP列表分發到您的所有Web服務器和/或將其集中保存 - 具體取決於您正在獲取或預期的是哪種濫用。

話雖如此,你應該明確應用YAGNI原則。如果您沒有遇到真正的容量問題,請不要打擾阻止濫用者。實際上,很少有網站會這樣做,其中大部分是與運行網站相關的大量費用(如Google搜索)的東西。