2011-11-26 57 views
2

上下文

我有一個JavaScript的網頁遊戲。防止AJAX作弊的網頁遊戲

我在遊戲中發送了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'])) { 
    ... 
} 
+0

只有獲得方法可能,但不是在post method.you使用post方法,可能會有所幫助 - http://stackoverflow.com/questions/1756591/prevent-direct-access-to-file-所謂按Ajax的功能 – devtut

回答

4

隨着遊戲客戶端,就沒有辦法保證他們不「作弊」。有辦法讓它變得更加困難。

  • 所有的計算都在服務器端執行,併發回令牌......這對您的遊戲來說可能不可行/可行。
  • 更改每次提供的代碼,以便它需要更多時間「解密」所有請求。
  • 混淆代碼...這只是一種威懾。
  • 在比賽期間發送「令牌」以查看數據是否匹配(例如,你不能在5秒內贏得賽車遊戲)......這也可能被欺騙。

只要遊戲是客戶端,它不能被「保護」。