JavaScript游戏中的Ajax安全性

5
在我的JavaScript游戏中(使用jQuery制作),我将玩家位置存储在数据库中。当角色移动时,我只需向特定的URL发送请求,例如mysite.com/map/x1/y3(其中角色的位置为x = 1,y = 3)。
该URL将坐标发送到数据库并检查是否有其他玩家靠近我们。如果是,则还会发送带有那些玩家名称和坐标的JSON对象。
这里我的问题是 - 如何保护它?有人可以查看我的JavaScript代码并准备类似mysite.com/map/x100/y234的URL,这将“传送”他到地图的另一侧。

你所询问的完全不可能。 - rook
2个回答

8
在浏览器中使用JavaScript处理的任何数据/计算都将不安全,因为所有代码都在本地机器上运行。我建议列出所有对公平游戏体验至关重要的参数,例如玩家位置、得分、资源等,并在服务器端计算这些参数的管理。你只需要从浏览器收集用户输入并发送更新后的状态到浏览器进行显示。
即使您选择在浏览器中计算一些值以避免延迟,您也不应考虑它们作为玩家共享的全局状态的一部分,并且应定期从全局到本地的方向重新同步本地状态与全局状态。
与典型表单处理类似,您还应检查由浏览器发送的用户输入值是否落入合理范围内,例如相对移动距离在一秒钟内小于某个距离。

0

您可以混淆您的JavaScript源代码。这至少可以阻止一些随意的作弊行为,但是使用JavaScript可能无法完全保证安全。


虽然通过模糊不清来保障安全是不存在的。如果要攻击这个系统,我会使用Tamperdata插件,我不在意脚本的样子。 - rook

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接