文章详情页
java - socket类服务端如何防止被ddos攻击?
问题描述
比如说我用socket,或者swoole的websocket服务器编写一个游戏服务端,但是客户端可以通过无限发包的方式来攻击我的游戏服务端,导致服务端崩溃,请问目前有什么比较好的方案可以防止这类ddos,cc攻击?(像网上各种cdn都只能防HTTP类型的请求攻击)
听别人说有硬件防火墙,但是如果我用阿里云腾讯云之类的服务器搭建服务端的话就没办法安硬件防火墙啊,有软件可以做类似的防御吗?
(不知道这里的朋友是否玩过英雄联盟或者穿越火线,这些游戏曾经都有各种炸房外挂,原理其实也是向他们的服务端发送大量垃圾数据包,或者超出正常频率发送含有奇怪逻辑的数据包,导致同一个房间内的其他订阅了该游戏服务端某种消息的玩家也会短时间大量收到这些数据包从而让客户端崩溃掉线,可见连腾讯游戏之前都对这类攻击没什么防范措施)
问题解答
回答1:iptables对ip封锁,限制每秒接受的请求次数等。。。或加白名单黑名单
回答2:是的。常见的云防火墙和软件防火墙、流量清洗之类,都是针对的HTTP协议。针对TCP连接或数据过滤的防火墙在WEB开发中很少。但也不是没有,例如这篇文章里面提到的DDOS就和题主的问题类似,所以题主的问题应该改为“如何防御TCP拒绝服务攻击”
回答3:建议控制频率,和宝合法性验证。发现异常的IP,直接封掉。
标签:
java
相关文章:
1. node.js - nvm怎么更新node的最新版本呀?2. html5 - 目前 公司App 嵌入H5页面 做个 手机支付功能 没有做过 所以 请求各位有经验的 给个思路3. PHP单例模式4. angular.js使用$resource服务把数据存入mongodb的问题。5. Angular.js 无法设置Authorization头,该怎么解决?6. angular.js - angular内容过长展开收起效果7. dockerfile - [docker build image失败- npm install]8. docker不显示端口映射呢?9. Docker for Mac 创建的dnsmasq容器连不上/不工作的问题10. html5 - Vue绑定动态变量不可用
排行榜