【问题标题】:Prevent AJAX cheating on a web game [duplicate]防止网页游戏中的 AJAX 作弊 [重复]
【发布时间】:2012-01-06 21:50:19
【问题描述】:

上下文

我有一个 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'])) {
    ...
}

【问题讨论】:

  • 只有get方法可以,post方法不行

标签: jquery php php jquery ajax security


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2012-03-16
    • 2012-08-20
    • 1970-01-01
    • 2022-10-15
    • 2016-08-22
    • 2010-10-31
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多