【发布时间】:2011-07-31 11:30:40
【问题描述】:
好的,这个问题不是很清楚,因为我不能把它写成一个问题。
我有一个使用 javascript 设计的游戏,它基本上是一个多人游戏。 所以说有两个玩家,玩家darklord和angel
天使射杀黑暗领主 所以 darklord 失去 1 条生命。
现在发生的事情是我使用 ajax 来提交 darklord 失去的生命数量。 请求是 GET /shootout.php?shooter=darklord&life=-1 所以这让我可以存储darklord的新生命。
现在问题是 angel 知道计算机,他开始请求 /shootout.php?shooter=darklord&life=-3
因此,darklord 失去了他应该拥有的更多生命。所以angel在游戏中作弊了。
不,我想阻止这种请求,我正在尝试找到一种方法来隐藏我的请求。我的意思是我知道我可以加密网址。所以说我加密了它,这样请求应该是 GET /enc.php?e=934ufj30jf 让 darklord 失去生命,而 e 的不同值让天使失去一条命,还是得一分。但是,要使其正常工作,我需要将数据发送到客户端,如告诉 javascript 请求此 url。
现在用户可以轻松地四处阅读文件的源代码,以便找出新的服务请求,
我已经找到并想到了许多其他方法,但它们都限制了作弊的数量或影响游戏玩法等。它们都没有完全消除这种安全性。
所以现在我的问题是如何确保用户不会发送不真实的数据。我如何阻止他们作弊? 我想到了最好的方法是我使用服务器端脚本来实际计算某人射击别人然后将其与客户端输入匹配的可能性,但这会影响执行时间很多,所以我试图找到其他方式,一些公钥加密? (问题是用户可以随意放置数据然后对其进行加密)令牌? (问题是用户可以随意放数据,然后放当前token)
还有其他想法吗??
【问题讨论】: