我做的Socket 服务端,现在受到别人的 恶意发包,导致服务器程序瘫痪,有没有好的方法防止呢?

解决方案 »

  1.   

    从程序的角度,除了认证之外我觉得没有好的方法可以防止恶意socket,但这个认证是在tcpip连接成功之后的,所以我建议还是在防火墙上做文章。
      

  2.   

    To: phy 在防火墙上做文章我不理解你说的方法,能详细些吗?
      

  3.   

    如果导致服务器程序瘫痪  他的包导致你执行了些操作?
    服务器没有做TRY CATCH处理吗?  你可以考虑做个动态包头.在第一次建立连接的时候发一个 计算公式 .每次客户端的随机生成一个KEY根据这个公式生成前几位的数据 
    连KEY带数据到服务器 在验证就可以了. 就算抓到包也没有用.因为是动态的.
      

  4.   

    还是要防火墙动态拦截处理,有些防火墙可以自定义规则,只要满足特定规则自动加入ip黑名单
    比如我就设定谁访问我服务器的lsass.exe,就将他们自动拦截加入黑名单
      

  5.   

    防火墙嘛
    1:攻击你的人可能有固定的网段而甚至有固定的IP,那么你可以对这个网段设置为拒绝这个网段对你服务的端口进行的连接;
    2:可以在防火墙上设置为只允许某些特定的IP特定的网段的IP连接你的服务端口;
    3:高级的防火墙可以设置对某些IP地址允许进行的连接数,来防止恶意的连接。
    4:如果在IP地址上不能做文章,那么就在这个协议上增加认证的功能,识别出是谁在发送恶意包。至于如何处理,行政上也可以;也可以通过防火墙来临时禁止这个IP地址或者IP段一段时间。
      

  6.   

    防火墙可以首先处理底层的数据包,例如ddos攻击,这样你的socket实际上就没有接收到那么多恶意的请求了。