好的,我正在使用JavaScript和HTML5创建游戏。 map
,x
,y
,level
,exp
等变量存储在JavaScript中以便跟踪。在我的客户端页面上,JavaScript变量被存储起来以与游戏一起玩。客户端页面每隔5秒向POST
数据库发送一个MySQL
AJAX调用,并成功更新它。
但是,用户可以轻松修改JavaScript变量并在游戏中欺骗他们。然后,一旦他们编辑了JavaScript变量,POST
就会抓取并更新它,即使他们不道德地编辑了它。
那么,我该如何防止这种情况发生呢?
答案 0 :(得分:3)
不幸的是,没有办法阻止恶意方操纵客户端代码。但是,在许多情况下,某些行为可能会发出可能的滥用行为。
例如,如果我通过治疗药水可以恢复的最大生命值是100分,并且用户突然增加1000,那么你知道有滥用。您的策略应该包括将代码中的检查作为验证,以确保返回到您的应用程序的数据有意义。
这个概念很像业务应用程序开发人员可能会做的,以确保在Web表单中输入的数据得到验证。如果存在某些非法或不应提交的值,则服务器会响应错误消息并指示需要填写哪些字段。
在您的情况下,某人可能仍然可以在低于特定阈值的水平“游戏系统”。从小处开始,在分析数据时,您会发现更多可以实现此类数据验证的区域。
答案 1 :(得分:2)
您必须监视和分析服务器端的数据 - 可能会进行一些健全性检查,例如确保值不会超出范围,或者它们只会改变一些合理的数量。问题的问题在于你不能阻止用户做他们想做的事情,你只需要处理他们给你的东西。