Q
避免拒絕服務攻擊
5
A
回答
3
1
是的,recv()
可以無限期阻止。你需要實現某種超時。我想推薦使用boost asio library。它包括諸如與套接字連接無縫工作並接收事件的定時器之類的東西。只需設置一個異步套接字,添加一個計時器,如果時間用完就中斷。
這仍然不會使您免於DoS攻擊,因爲在超時窗口期間仍然會涌入大量請求。但是如果你設置的超時時間很短,可能會有所幫助。
1
如果您正在使用阻塞套接字,請查看使用SO_SNDTIMEO和SO_RCVTIMEO setsockopt()選項調整send()和recv()超時。
創建一個合適的服務器有很多複雜性,我會考慮通過乞討,借用或竊取這個服務器來獲取。這是一個sample multithreaded socket server。
此外,如果你有雙方控制(客戶端和服務器套接字軟件),我會創建一個協議,消息的長度作爲消息的前2或4個字節傳遞,這樣你只需要對該數字進行解碼並保持讀取直到經過的字節數。對客戶端和服務器都這樣做,它會使你的代碼變得更簡單。
相關問題
- 1. Grails/Tomcat:避免拒絕服務攻擊
- 2. 如何保護Web服務免受拒絕服務攻擊?
- 3. 如何避免XSS攻擊
- 4. 防止Django中的拒絕服務攻擊的最佳做法
- 5. 最佳實踐檢測攻擊DOS(拒絕服務)?
- 6. 使用.htaccess緩解拒絕服務攻擊
- 7. 防止針對Apache的HTTP(s)拒絕服務攻擊
- 8. ASP.NET Web應用程序防止拒絕服務攻擊
- 9. 如何檢測來自我電腦的拒絕服務攻擊?
- 10. 網站會自行從拒絕服務攻擊中恢復嗎?
- 11. 拒絕服務攻擊(DDoS)網絡應用設計
- 12. 防止網站拒絕服務攻擊的最佳方法
- 13. Vaadin或RAP/RWT傾向於拒絕服務攻擊
- 14. Windows Azure是否可以輕鬆抵禦拒絕服務攻擊?
- 15. 使用驗證碼保護免遭拒絕攻擊
- 16. XSS攻擊 - 消毒輸入vs拒絕
- 17. 檢查模式以避免XSS攻擊
- 18. 如何避免rails中的BREACH攻擊?
- 19. Grizzly項目是否負責緩衝區溢出或拒絕服務攻擊?
- 20. 爲什麼這個SQL注入'睡眠'攻擊有效的拒絕服務?
- 21. 書籍「Unix網絡編程」中的拒絕服務攻擊問題
- 22. 網址檢索服務的最佳做法?如何避免被攻擊媒介?
- 23. 避免服務類
- 24. 如何避免在簡單的代理服務器中拒絕連接?
- 25. 如何避免拒絕服務(DoS)閱讀Google新聞RSS種子
- 26. WCF服務和POODLE攻擊
- 27. 可以ping服務器的404錯誤導致類似的拒絕服務攻擊問題?
- 28. WCF REST服務拒絕服務防禦
- 29. 拒絕Web服務連接
- 30. Oracle服務拒絕啓動
是的我想知道我是否使用recv()是否會導致DoS?由於服務器可能會等待很長時間。例如,如果我的郵件大小非常大。 – mousey 2010-08-09 01:52:58
請注意,可以在套接字上設置超時,並在recv上設置最大緩衝區大小,因此濫用的機會可能會受到限制。我想如果你有一個單獨的進程,一個不需要的對等可以緩慢地向你發送大量的字節作爲拒絕服務攻擊。 – MZB 2010-08-09 03:24:12