天天看點

欲犯我者,我必誅之

     看标題就有點霸氣側漏的感覺,哈哈!

    開篇之前我先講一件發生在我們身邊的事情,記得不久之前國内大名鼎鼎的CSDN賬号洩露一案嗎?這一洩露大概有600萬會員的個人資料以及密碼被人拿走了(詳情可見http://tech.qq.com/a/20111221/000485.htm),這批資料對于那些别有用心的人來說實在太寶貴了,據統計80%的人在各個網站上的登入ID和密碼是相同的,有沒有想過如果這些人拿着這些個資去猜測其他網站的登入會出現什麼狀況呢?其危害之大不言而喻.

     那麼究竟是什麼原因導緻CSDN個資洩露的呢?據業内人士透露,是因為CSDN自家的人把會員個資壓縮之後放在了網站目錄裡,被他們給猜測到了,然後直接給下再回去的,是不是聽起來很扯呢!其實一點都不扯,很多程式員都會犯這樣的錯,這絕非偶然,請看下邊的圖檔.

欲犯我者,我必誅之

     上圖中的内容是我用PHP捕捉到的404錯誤,每當發生404錯誤時,PHP就會自動給我發送Email告知我下邊的詳情:

欲犯我者,我必誅之

     看吧,對方的意圖很明顯,就是要猜測我的網站上是否有忘記删除的壓縮檔案,如果我真的忘記删除壓縮檔案的話,恐怕CSDN的事情就會再次重演了.不過不說的是對方的猜測工具真的挺好用的,在短時間内發送大量的猜測請求到我的伺服器,這不但會浪費我的網絡帶寬,還會因為不停發送email拖慢伺服器,最可怕的是如果一旦被對方猜對了,那麼危害就不言而喻了.

     對于如此宵小之輩有沒有懲治的措施呢?方法當然是有的,如果沒有解決辦法我還在這裡廢這麼多話還不得被大家生吞活剝了:) 其實最簡單的辦法就是封鎖對方的IP,一旦發現這種猜測行為立即果斷封鎖對方的IP,或許你會說對方是浮動ip,重新撥号ip就變了,其實這一點我也有想到,最簡單的做法就是對方換10個ip就封10個,換100個封100個.隻要他還嘗試猜測下去就封他目前的IP,這樣一來除非他用的軟體能夠實作馬上斷線重撥更換IP,否則不管他的猜測軟體有多好用也就隻能一個ip猜測一次.這就從很大程度上降低了網站伺服器的風險.

    具體實施方法分為兩個分支,第一個分支是linux伺服器,第二個分支是windows伺服器.

    首先我來說一下linux伺服器的做法:相比windows伺服器來說,linux簡單的多,因為linux的shell可以全面控制伺服器這一點windows是無法比的.做法如下:

     1.用nginx或apache重定向404錯誤到某個php檔案(假如這個檔案叫lock.php),當發生404錯誤時就會呼叫該php檔案

     2.lock.php實作捕捉來訪者的ip等資料,另外這個檔案還要實作發送email功能,最重要的是這個檔案要可以用來生成shell檔案,并給與0700權限,讓其可以被PHP執行

     3.生成的shell既然可以被PHP執行,那麼你想在這個shell裡做啥都行了,你就為所欲為吧,你可以用它操作硬體防火牆封殺ip也可以用它操作linux自帶的防火牆,這就看你的心情了.

     Linux的做法就是這麼簡單,隻有三步而已,那麼接下來我說一下windows伺服器的做法:

     2.lock.php實作捕捉來訪者的ip等資料,另外這個檔案還要實作發送email功能,最重要的是這個檔案要可以用來生成bat檔案,讓其可以被PHP執行

     3.bat檔案的内容可以是用來操作硬體防火牆,如果你沒有硬體防火牆的話你也可以用它來操作伺服器上的ip安全政策達到實作封ip的目的(詳情可以了解一下windows自帶的netsh指令).

     事實證明這兩套做法效果都是非常好的,因為我有自己的伺服器,最近常常被猜測,是以被逼出來了這樣的做法,通過上述做法我發現效率非常高,從對方開始猜測到封鎖完成的時間間隔不足1秒,如果您也有自己的伺服器不妨嘗試一下.

     如果您對我的這篇文章有異議,歡迎您加我的群一起讨論,QQ群號:223494678