第一层:协议非对称加密交换密钥,对称加密传输内容,保护好服务端私钥,防止中间人攻击。流式加密,同样包发两次内容不一样。
第二层:不用标准序列化工具如 protocolbuf,用修改版或者自己实现的。
第三层:客户端加密加壳防止调试和注入,程序签名防止篡改二进制。
第四层:重要代码放虚拟机或者脚本里运行(脚本字节码需需改),一般黑客主要分析反汇编,你复杂逻辑多套几层他就晕了。
第五层:关键数据不落内存,一律使用 getxx,setxx 之类的接口,后面将真实数据经过变换以后才落内存。
第六层:守护进程动态跟踪监控情况。
第七层:决定性逻辑永远放在服务端。
第八层:服务端定期校验消息合理性,比如十秒内最大的移动步长是多少,实际发上来的合理不合理,不合理就踢掉,比如按键点击频率是否超过正常人。
第九层:不定期弹出反外挂答题,答正确奖励经验,错误就掉线。
第十层:必须要放在客户端计算的内容将输入和结果 hash 同步给其他客户端验算,不对就踢掉。
第十一层:当检测到客户端触碰到某规则不要急着踢掉它,而是有概率被踢掉,还要随机几秒踢掉,这样黑客发现一会这里断一会那里断,就蒙圈了。
第十二层:发现某黑客/外挂工具利用某漏洞破解了游戏,先看影响大不大,再看他挣不挣钱,影响一般又不挣钱的话可以先养着他,等他挣钱了用户多了,大型活动之前,一条指令就把它封了,用户退款都可以弄得他爬不起来。
。。。。。
手机打字慢,先写这些,没有绝对安全,就是合理的策略加攻防成本。
大佬你好,请问第二层不使用protocolbuf是为什么?本人小白不是很了解,是因为它太有名了数据太容易被反序列化出来?
太强了,都是干货