2012-12-30 71 views
3

如何在沒有任何響應的情況下關閉與Apache的http連接?如果我檢測到請求是黑客攻擊,我想關閉連接而不響應任何請求。是否可以在沒有任何響應的情況下關閉http連接?

現在我有類似的東西:

GET/HTTP/1.0 
User-Agent: Hacking-Tool 

HTTP/1.1 403 Forbidden 
Date: Sun, 30 Dec 2012 19:00:56 GMT 
Server: Apache/2.2.0 (Linux/SUSE) mod_ssl/2.2.0 PHP/5.1.2 SVN/1.4.6 
Content-Length: 13 
Connection: close 
Content-Type: plain/text; charset=utf-8 

Stop hacking! 

我怎麼能簡單地關閉連接,使黑客無法猜測我正在運行的是Linux系統。我知道我可以減少服務器簽名,這並不重要。

+1

您可以簡單地關閉TCP連接。你也可以刪除'Server:'標題。 – SLaks

+0

我更新了我的問題**如何**我可以關閉連接。我知道服務器頭不能被刪除。 – rekire

+0

用什麼語言? – SLaks

回答

1

你已經問了兩個問題,儘量避免這個:)。

首先是要防止OS /應用程序指紋識別。你可以通過刪除服務器頭文件和更改apache錯誤頁面來完成這項工作......並且仍然有一些概率攻擊者可以猜測你的os和http服務器。您可以使用Apache Mod Security來幫助自己。

其次是在應用程序級別,邏輯執行(您的應用程序確定請求是否是黑客攻擊嘗試)之後沒有正確的http響應標頭時關閉連接。在PHP中,我認爲你不能這樣做。當執行解析器時,我認爲這個響應已經由apache準備好了,如果解析器沒有返回任何空的響應或者錯誤響應將由apache本身發送。我想如果你使用一些標題過濾,並且只是返回普通字符串「檢測到黑客攻擊,管理員被告知,可能會有法律依據。」你會嚇得一些腳本小子很好。

P.S.我好奇你的應用程序能夠檢測到什麼黑客行爲?這是CSRF令牌驗證?這是簡單的未經認證的訪問嘗試,還是其他形式的授權檢查?或者你開發的一些安全機制?

+0

關於隱藏'Server'標頭的部分只是爲了解釋我想要隱藏的內容,但這不是我問題的一部分(只是在註釋中)。到目前爲止,我讀了一些關於mod secutiry的東西,我認爲這是一種代理,不是嗎?關於我如何檢測它,我基本上使用mod重寫。所以如果有人試圖訪問一個不存在的phpmyadmin我知道這是一個攻擊。所以我想關閉連接並將ip放在我的防火牆黑名單中。 – rekire

+0

mod security只是用於過濾傳入和傳出數據的apache模塊。並且可以幫助您確保您的案例或應用程序中的匿名。如果沒有任何頭文件,我不會打擾關閉conn。我只想返回簡單的信息,這對於apache來說不是一個很大的處理負擔,所以你不會真的在你的應用程序中打開一個新的DoS攻擊載體。 – fatfredyy

+0

那麼恕我直言,它不打開任何攻擊媒介,如果我只是關閉連接,並阻止來自該主機的所有未來連接。這不會保護我免受DDOS,而是DOS。我會在家裏檢查那個mod。 – rekire

相關問題