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