請教:如何防止Socket惡意發包


我做的Socket 服務端,現在受到別人的 惡意發包,導致服務器程序癱瘓,有沒有好的方法防止呢?

19 个解决方案

#1


防火牆啊?

#2


從程序的角度,除了認證之外我覺得沒有好的方法可以防止惡意socket,但這個認證是在tcpip連接成功之后的,所以我建議還是在防火牆上做文章。

#3


頂一下吧

#4


自定義包頭.比哪前四位,設成你自己特有的數據格式.如果發覺接受的不是你自己的包.則不處理.

#5


To: phy 

在防火牆上做文章

我不理解你說的方法,能詳細些嗎?

#6


可是,可以通過抓包的方法,獲取包的格式呀

#7


客戶端發包頻率過快將被認為是惡意攻擊,需要斷開連接,並記錄IP。

#8


利用驗證身份的機制

#9


如何利用 利用驗證身份的機制??

#10


包頭包未加多兩個字段,收到時候判斷,正確的封包再處理

#11


引用 9 樓 pineapplemi 的回復:
如何利用 利用驗證身份的機制??

驗證身份機制,估計是接收封包前需要客戶端發送類是與帳號和密碼的驗證信息,你在接受處理封包前利用驗證機制過濾
非法用戶,禁止接受其封包。

#12


要用防火牆

#13


如果導致服務器程序癱瘓  他的包導致你執行了些操作?
服務器沒有做TRY CATCH處理嗎?  

你可以考慮做個動態包頭.

在第一次建立連接的時候發一個 計算公式 .

每次客戶端的隨機生成一個KEY根據這個公式生成前幾位的數據 
連KEY帶數據到服務器 在驗證就可以了. 就算抓到包也沒有用.因為是動態的.

#14


還是要防火牆動態攔截處理,有些防火牆可以自定義規則,只要滿足特定規則自動加入ip黑名單
比如我就設定誰訪問我服務器的lsass.exe,就將他們自動攔截加入黑名單

#15


補充一下,防火牆支持ip地址信任列表.非信任地址訪問,也當作入侵直接攔截了.
具體看樓主的程序是應用在哪個方面的.
如果不需要修改程序,還是不改程序,防火牆嘛,我覺得能用它解決就好了.不必要太麻煩.
當然,也支持樓上的那些,修改頭.或者程序實行認證,或者記錄反復登錄的時間,規定在一定時間內登錄次數過多,拒絕服務.
反正方法很多,各顯神通了

#16


防火牆嘛
1:攻擊你的人可能有固定的網段而甚至有固定的IP,那么你可以對這個網段設置為拒絕這個網段對你服務的端口進行的連接;
2:可以在防火牆上設置為只允許某些特定的IP特定的網段的IP連接你的服務端口;
3:高級的防火牆可以設置對某些IP地址允許進行的連接數,來防止惡意的連接。
4:如果在IP地址上不能做文章,那么就在這個協議上增加認證的功能,識別出是誰在發送惡意包。至於如何處理,行政上也可以;也可以通過防火牆來臨時禁止這個IP地址或者IP段一段時間。



#17


firewall

#18


防火牆可以首先處理底層的數據包,例如ddos攻擊,這樣你的socket實際上就沒有接收到那么多惡意的請求了。

#19


網上下載一個防護牆工具.對你的端口進行監聽.然后對數據包進行分析,進行相應的處理

注意!

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



 
粤ICP备14056181号  © 2014-2021 ITdaan.com