防止网络游戏上的AJAX作弊
上下文
我有一个JavaScript的网页游戏。
我在比赛期间用AJAX发送分数和成就。
所以任何人都可以查看源代码,复制此请求并欺骗我的游戏。
问题
- 知道怎么防止这个?
- 使用来自服务器的令牌(我从未使用过这个系统)?
码
jquery :
$.post('ajax/score.php', {pseudo: $pseudo, score: $score, achiev: $achiev}, function(data) { $('#loader').show().delay(3000).fadeOut(1000); } );
php :
if (isset($_POST['pseudo']) && isset($_POST['score']) && isset($_POST['achiev'])) { ... }
由于游戏是客户端,因此无法确保他们不会“欺骗”。 有办法让它变得更加困难。
- 让所有计算都在服务器端执行,并发送回令牌……这可能对您的游戏不可行/不可行。
- 每次更改所提供的代码,以便需要更多时间来“解密”所有请求。
- 混淆代码……这只是一种威慑。
- 在游戏过程中发送“令牌”以查看数据是否匹配(例如,您无法在5秒内赢得赛车游戏)…这也可能是欺骗性的。
只要游戏是客户端,它就不能“安全”。