阻止客户端控制数据到服务器

时间:2018-11-11 03:03:18

标签: javascript node.js socket.io

我一直在制作一个简单的socket.io程序,玩家可以在环境中移动,客户端发送服务器事件。

但是,客户端似乎可以使用控制台伪造数据并将其发送到服务器(通过使用a, b, ... = function(..) )。

是否有解决方法,使服务器仅接受“真实”数据,或防止客户端发送虚假数据?

1 个答案:

答案 0 :(得分:2)

您的服务器应始终保持应用程序的状态,并具有每种状态的所有可能动作的列表。

例如,如果您的角色可以在地图上移动,则服务器应始终保留玩家的坐标。假设玩家在坐标(x, y)处。服务器将仅允许将播放器移动到(x+1, y+1)(x-1, y+1)(x+1, y-1)(x-1, y-1)的消息。任何其他消息都应该丢弃。

如果收到一条消息,提示玩家希望移至(x+500, y+500),则应忽略该消息,并可能将玩家标记为作弊者并断开其连接。