我打算制作一个基于网络的游戏(使用three.js 和socket.io),我主要关心的一个问题是防止作弊。
我知道制作安全游戏的基础知识,即:
- 永远不要相信客户端,客户端仅用于渲染和输入捕获
- 将您的游戏逻辑放在服务器端
- 最好的反作弊是人类
知道这一点,我不知道如何保护的漏洞正是那些与客户端有关且服务器无法检查的漏洞。例如,作为攻击者,我可以:
- 修改渲染器或着色器以使墙不可见(wallhack)
- 修改相机的位置,这只是在一个变量中
- 注入将为我输入的代码(aimbot)
在经典游戏(可执行文件)中,有可以检测非法操作的程序。通常,反作弊程序会检查程序集并检查是否没有注入 dll。
也许有一个专门从事这项任务的混淆器(即使这意味着失去性能)?
我还没有完成所有的研究,但我希望你们中的一些人已经面临这个问题,并且可以通过定位我的研究来节省我很多时间。
非常感谢