防止网络游戏上的AJAX作弊

时间:2011-11-26 13:55:57

标签: php jquery ajax security

上下文

我有一个用JavaScript的网页游戏。

我在比赛期间用AJAX发送分数和成就。

所以任何人都可以查看源代码,复制此请求并欺骗我的游戏。

问题

  • 知道如何防止这种情况?
  • 使用来自服务器的令牌(我从未使用过这个系统)?

代码

$.post('ajax/score.php', {pseudo: $pseudo, score: $score, achiev: $achiev},
    function(data) {
        $('#loader').show().delay(3000).fadeOut(1000);
    }
);

if (isset($_POST['pseudo']) &&
    isset($_POST['score']) && 
    isset($_POST['achiev'])) {
    ...
}

1 个答案:

答案 0 :(得分:4)

由于游戏是客户端,因此无法确保他们不“欺骗”。有办法让它变得更加困难。

  • 让所有计算都在服务器端执行,并发回令牌......这可能对您的游戏不可行/不可行。
  • 每次更改所提供的代码,以便需要更多时间来“解密”所有请求。
  • 模糊代码......这只是一种威慑。
  • 在游戏过程中发送“令牌”以查看数据是否匹配(例如,您无法在5秒内赢得赛车游戏)......这也可能是欺骗性的。

只要游戏是客户端,它就不能“安全”。