关于服务器监听? 本帖最后由 VisualEleven 于 2011-11-24 14:02:44 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先考虑防入侵攻击硬件设备吧其次,可以试着考虑同一段时间同IP连接数量(但这有他的不足,有些网同IP同一段正常连接也会有) 不就是一个安全的问题吗?第一步,服务器在数据库可以指定客户端的IP和端口。一个客户过来连接,你和数据库中的数据进行比对,如果是这个IP的这个端口就允许,其他断开。第二步,在第一步已经安全了许多。你还可以记录用户的验证信息存在数据库中,如硬盘ID号,MAC地址等;客户端连接进来你可以检测这个信息是否匹配。这两步下来基本已经够了。当然第二步中硬盘ID号、MAC地址记录有些麻烦,你可以手工录入,也可以提供WEB方式,让用户注册。另外,你总考虑断开的问题,如果交易量不大,建议用UDP协议。 多开,你就定个量吧,如果第二种不行,那硬件设备也针对你说这没太大效果了,实在不行,在连接建立前,C边发自己变化验证(算法)吧,服务端在定期对新建没通过验证长时间(如2S)没发验证或验证没通过的试试,现在只能想到这程序,并且可以建立学习功能,对某IP数据验证码相同(可能是伪造),且建立多连接没通过的,加入黑名单,一段时间不接受黑名单的新连接 利用getsockopt(...,SO_CONNECT_TIME, ...);看看连接建立了多长时间,超过指定的时间就强制T掉,closesocket()SO_CONNECT_TIME: DWORD Returns the number of seconds a socket has been connected. This socket option is valid for connection oriented protocols only. 一般来说,需要定时器计时。就是说,每次收到包,就重新开始计时,计时事件发生则说明某socket超过N秒没有发包,这通常跟“心跳”同时使用。 我目前就是这么做的, 并且做了模块检测IP, 当同一个IP在当前连接中超过一定次数就直接断开新的连接, 必要时一个IP只能在当前连接中一次。 不管怎么做, 如果一直连, 而不做想服务器发送数据的话, 都连接都是造成占用, 加入设定并发量为1000, 根本就经不起这样的连接。。 或许7楼的说的对吧, 这根本就不是应用关心的问题。 但是想知道, 到底服务器一般对避免攻击的策略是什么? 我一直以为TCP本身就有心跳机制吧, 所以TCP我一直都未做心跳。 使这样吗? 图形学裁剪算法的一点小问题 关于窗口的激活 64位的问题 帮帮忙!能执行但不能显示正确结果,VC++\MFC BoundChecker 8 不知道怎么用啊 怎么画点和画线? 急求投影变换和视角变化的高手! 如何加快重画的速度? 为何现在的编译器还支持.h? 如何获取本机获得的网络数据包的端口和ip? 求教:OpenGL库问题 MFC大虾们请进啊!
其次,可以试着考虑同一段时间同IP连接数量(但这有他的不足,有些网同IP同一段正常连接也会有)
当然第二步中硬盘ID号、MAC地址记录有些麻烦,你可以手工录入,也可以提供WEB方式,让用户注册。另外,你总考虑断开的问题,如果交易量不大,建议用UDP协议。
实在不行,在连接建立前,C边发自己变化验证(算法)吧,服务端在定期对新建没通过验证长时间(如2S)没发验证或验证没通过的试试,现在只能想到这程序,并且可以建立学习功能,对某IP数据验证码相同(可能是伪造),且建立多连接没通过的,加入黑名单,一段时间不接受黑名单的新连接
看看连接建立了多长时间,超过指定的时间就强制T掉,closesocket()
SO_CONNECT_TIME:
DWORD Returns the number of seconds a socket has been connected. This socket option is valid for connection oriented protocols only.
我目前就是这么做的, 并且做了模块检测IP, 当同一个IP在当前连接中超过一定次数就直接断开新的连接, 必要时一个IP只能在当前连接中一次。 不管怎么做, 如果一直连, 而不做想服务器发送数据的话, 都连接都是造成占用, 加入设定并发量为1000, 根本就经不起这样的连接。。 或许7楼的说的对吧, 这根本就不是应用关心的问题。 但是想知道, 到底服务器一般对避免攻击的策略是什么?
我一直以为TCP本身就有心跳机制吧, 所以TCP我一直都未做心跳。 使这样吗?