我正计划制作一个基于网络的游戏(使用three.js和socket.io),而我主要关心的问题之一是防止作弊。
我知道制作安全游戏的基础知识,即:
我知道,我不知道如何保护这些漏洞恰恰是那些与客户端有关且服务器无法检查的漏洞。例如,作为攻击者,我可以:
在经典游戏(可执行文件)中,有些程序可以检测非法行为。通常,反作弊检查程序集并检查是否没有注入dll。
也许有一个专门用于此任务的混淆器(即使这意味着失去性能)?
我尚未完成所有研究,但我希望你们中的一些人已经遇到了这个问题,并且可以通过定向研究来节省我很多时间。
非常感谢
答案 0 :(得分:0)
如果您想使用“反作弊”引擎,则必须这样做。您可以添加任何希望在客户端进行的操作,以方便服务器端的工作,但是您绝不能信任客户端。您拥有的所有逻辑必须至少在服务器端。您可以根据需要在客户端复制它,但是没有客户端解决方案可以做到。
基础知识之后: 如果您不介意包装HTTP,请使用ExpressJS 看看以下用于express-blacklist和express-defend的代码:
INDIRECT
由于它们未在socket.io中注册,因此仅受Express路由的影响
看看这个:https://github.com/hrt/AnticheatJS
这是您可能要研究的优秀软件:https://www.tuxbihan.org/software/top-05-anti-cheat-software-to-make-fair-for-gamers/
希望这会有所帮助!