妈妈的。。我的程序还在测试阶段就被一些无聊的人攻击了,攻击很简单就是不停的发空连接。直到我的服务端连接超过最大数死掉。请问有什么好的办法解决没有。

解决方案 »

  1.   

    1.合理利用服务器的资源,特别是未分页内存和socket描述符;
    2.设置一个合理的连接数上限;
    3.如果是针对socket资源的攻击,可以采用socket池,关闭时调DisconnectEx,接受连接时使用AcceptEx来重复利用原有的socket描述符;
    4.如果不是采用3,则对socket设置linger,并且设置linger时间为0.
      

  2.   

    1.建议同一个IP地址已经存在,并且是空连接,那就直接断开。
    >>局域网用户怎么办?
      

  3.   

    1.验证用户的合法性2.修改空连接等待时间3.当空连接来至同一IP的数量达到**时封IP
      

  4.   

    1.建议同一个IP地址已经存在,并且是空连接,那就直接断开。 
    > > 局域网用户怎么办?
    局域网也有IP地址呀,还有局域网内还会有空连接那也一样断掉呀。
    唯一要保证的是正常连接不能产生空连接。
      

  5.   

    我说的局域网用户,是指通过NAT出去的用户。
      

  6.   

    我说的局域网用户,是指通过NAT出去的用户。那正常用户是空连接吗?如果正常用户也是空连接的话我无话可说。
      

  7.   

    通道就不可以通过NAT发空连接?
      

  8.   

    你可能是说通过局域网网关N个空连接同时连。那也可以通过保证3秒内,同一个IP只能有一次连接,再通过第二条保证一下。当然这只是我一个想法,想要具体实时需要多方面的考滤。如果NAT不允许外网共享使用的话,对局域网内用户应该可以管理好。减小大量空连接还是起到一定的作用的。
      

  9.   

    可以使用IP地址黑白名单,把空连接的IP全部进黑名单,把自己的出口IP作白名单。最重要就是不要让外网用自己出口IP地址。应该也能起到减少恶意连接的效果
      

  10.   

    监控IP我也不知道怎么监控。如果别人搞了一个IP伪装那么怎么得到别人的真实IP呢?????
    不知道冰盾防火墙是怎么弄的。那些Syn Ack包都被挡掉了。我现在就用了这个防火墙。我的软件终于可以安稳的睡个好觉了。。