我正在创建一个2D MMORPG游戏(以applet的形式),我有一个简单的问题。
我理解,出于安全目的,作为一种一般的反黑客技术,客户端应该包含尽可能少的逻辑数据(因此不能被操纵和利用)。
,我的问题是这个:假设我将数据从服务器发送到客户机(这种情况经常发生)。在接收包的客户端代码中,我将所说的数据包解析为它的“块”,并将数据逻辑地存储在它们精确的对分变量中。让我们说,其中一个变量存储了球员的健康状况。这是否意味着这个变量实际上无法用于计算--因为它是一个逻辑数据块(因此可以操作,因为它存储在客户端上),而唯一的选择是读取包含健康信息的数据包,如果我需要健康量的话?
谢谢你抽出时间阅读我的问题。-Bryan
发布于 2013-01-13 16:40:24
我想说的是,这取决于你用它做什么计算。对于不重要的事情,如UI显示,您可以安全地使用局部变量。如果您使用它来确定播放机是否死了,那么您需要让服务器做出这个决定。在高延迟情况下,您可以暂时使用局部变量,直到服务器能够更新客户端;但是客户端的版本不应该是规范版本。
详细说明:使用局部变量,其中唯一受影响的人是玩家,所以他们是否操纵自己的数据并不重要。对于所有其他情况,都依赖服务器变量。
发布于 2013-01-13 17:58:59
我这样做的方式是让服务器根据在客户机上执行的操作来执行它自己的计算。客户端可以执行相同的操作来给客户端提供更快的更新,但是服务器应该是所发生的事情的可信决定因素。这意味着您不需要在客户机和服务器之间进行如此多的交互来重复检查所发生的一切。
https://stackoverflow.com/questions/14305506
复制相似问题