客户可以发送密码和用户名和其他信息如网卡mac address给server,如果成功返回一个唯一标志字W给客户C,使W和mac address,以及登陆次数联系起来,就算被其他人取了也不能用.
2) 如果由于通讯问题,客户端C来不及从服务器上Logout,服务器如何注销该客户的安全字W?是否必须要做用户级的KeepLiving
可以让客户定时登陆一次(比如1分钟),如果有3次客户没有登陆,可以视为logout
2) 如果由于通讯问题,客户端C来不及从服务器上Logout,服务器如何注销该客户的安全字W?是否必须要做用户级的KeepLiving
可以让客户定时登陆一次(比如1分钟),如果有3次客户没有登陆,可以视为logout
另外其他通讯软件是否也使用这中机制,有没有更好的?
我觉得在传输过程中要对数据(包括命令)进行加密(比如RSA),其实其他机器得到你的IP报也无法得知你的数据。
2) 如果C在一段时间还没有连接到S,则S就断开C。比如大家熟悉的FTP服务器,如果你在一定时间没有操作,FTP服务器就会断开联机。FTP客户断为了保持不被断开,就要每个一定时间发送NOOP命令。
客户首先签到,服务器记录次客户签到,得到客户标识和流水号零标志.
客户把客户的标识和包流水号用3DES加密作为包头发送到服务器,服务器解包检验合法性,这样如果有相同的包到服务器,服务器可以丢弃掉此包.
客户签退.
所以要想自制客户标识和包流水必须解密,但3DES应该来说是不可逆的,复制包的话服务端会丢弃包,所以一定程度能保持安全性.
缺点是冗余量有点大.