網站被人通過刷下載被惡意攻擊


之前網站被CC攻擊后來自己寫了個防止CC攻擊的程序得到解決,但最近攻擊者又找到了新方法,通過不斷的刷網站的下載地址讓帶寬占滿!導致網站癱瘓!日志如下:
2014-10-08 03:54:11 42.121.43.141 34128 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.137 21569 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.141 34083 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.137 21582 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.142 15225 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.142 15228 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.141 34116 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.141 34075 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.137 21641 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.136 40777 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.142 15230 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.141 34119 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.137 21561 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.141 34133 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.141 34100 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.143 28772 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.141 34101 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.140 62000 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.141 33973 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.141 34110 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.141 34053 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.138 19443 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.140 62058 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.137 21606 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
2014-10-08 03:54:11 42.121.43.140 62026 0.0.0.0 80 HTTP/1.0 GET /download/xjar.rar - 89420319 Timer_MinBytesPerSecond DefaultAppPool
我自己用壓力測試工具測試確實會造成帶寬瞬間用完!
請問各位有沒有什么解決方案給建議下。別回答把資源放到第三方網盤。或者弄成注冊權限控制。

12 个解决方案

#1


不要用實際地址提供下載,做成類似download.aspx?id=xxxx的樣子,
用程序做判斷,限制一下,如果同ip短時間內多次鏈接就拒絕,否則用 Response.OutputStream.Write把文件流寫到瀏覽器提供下載

#2


樓主應該是用后台輸出下載文件的吧
 你做個過濾器啊 在里面對下載進行一個下載次數限制撒 

#3


/download/xjar.rar
換成
/download/xjar

做一些判斷,比如樓上說的IP,然后在服務器上獲得xjar.rar這個文件的url,輸出下載

#4


引用 3 樓 u011710947 的回復:
/download/xjar.rar
換成
/download/xjar

做一些判斷,比如樓上說的IP,然后在服務器上獲得xjar.rar這個文件的url,輸出下載


原理跟注冊權限控制一樣  不過一個是判斷是否登錄過或者是否是上傳者本人, 這個是判斷是否重復下載

#5


這跟下載沒什么關系吧..

就算你不下載 有1W個人並發訪問你的網站 就僅僅請求圖片什么的 你也死了..

你屏蔽不了的..而且這1W人 都是來自不同的IP..你無法判斷真假.實際上 這些都是真實的.

所以  我也不知道了.,

#6


各位有沒有源碼可以借鑒的啊

#7


引用 5 樓 diaodiaop 的回復:
這跟下載沒什么關系吧..

就算你不下載 有1W個人並發訪問你的網站 就僅僅請求圖片什么的 你也死了..

你屏蔽不了的..而且這1W人 都是來自不同的IP..你無法判斷真假.實際上 這些都是真實的.

所以  我也不知道了.,


鑽牛角尖的想法,攻擊也是有成本的,如果什么都不做,對方會用很低的成本就把你K了,我們做的對策不是要徹底杜絕這種行為,當然也不可能,我只是為了增加對方的成本,而讓他放棄。如果你這樣的想法網站都不要開了

#8


引用 3 樓 u011710947 的回復:
/download/xjar.rar
換成
/download/xjar

做一些判斷,比如樓上說的IP,然后在服務器上獲得xjar.rar這個文件的url,輸出下載


有源碼可以借鑒?我不想在每個資源連接后面加個參數。比如http://xxx.com//download/xjar,http://xxx.com//download/test如此
而不想http://xxx.com/download.aspx?id=xxx這樣.這種方法甚至還要去動數據庫。

#9


引用 8 樓 dlq_skj 的回復:
Quote: 引用 3 樓 u011710947 的回復:

/download/xjar.rar
換成
/download/xjar

做一些判斷,比如樓上說的IP,然后在服務器上獲得xjar.rar這個文件的url,輸出下載


有源碼可以借鑒?我不想在每個資源連接后面加個參數。比如http://xxx.com//download/xjar,http://xxx.com//download/test如此
而不想http://xxx.com/download.aspx?id=xxx這樣.這種方法甚至還要去動數據庫。

你的文件都是什么類型的?至少應該能羅列出來類型吧 
若可以的話就直接用過濾器 在過濾器里判斷請求文件類型 從而根據下載限制判斷是否拒絕請求還是響應請求 
過濾器可以參考我以前的文章 http://www.oschina.net/question/165511_24543

#10


使用緩存,每次生成一個連接就緩存1分鍾,不用判斷IP地址

#11


引用 8 樓 dlq_skj 的回復:
有源碼可以借鑒?我不想在每個資源連接后面加個參數。比如http://xxx.com//download/xjar,http://xxx.com//download/test如此
而不想http://xxx.com/download.aspx?id=xxx這樣.這種方法甚至還要去動數據庫。


你說的
http://xxx.com//download/xjar

http://xxx.com/download.aspx?id=xxx
是一個意思啊。。。。前者把url重寫了而已。。。。 實質都是輸出文件之前,進行一次判斷請求看是否合法
你不想動數據庫,那就換其他辦法,只要把文件"提取碼"和文件真實url對應上就行了

#12


多謝各位的建議,已解決

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: