2017-04-09 3 views
0

私は、JavaScriptのメモリカードゲームを開発しています。最後に、ユーザはスコアをデータベースに提出する能力を有する。最高4つの得点が賞を獲得します。コンテストスコアを確保する最も良い方法は、Ajaxリクエストを送信することですか?

ゲームの最後に、ユーザーが自分の姓名、電子メールアドレスを入力するフォームを含むライトボックスが開きます。スコアはajax経由でapiに投稿されます。また、スコアは投稿要求に含まれます。

経験豊富なユーザーは、ブラウザの開発コンソールで簡単にスコア提出リクエストを検索し、カールまたは独自のビルドajaxリクエストを介して簡単に偽のスコアを送信することができます。

ここで不正行為を防止するにはどうすればよいでしょうか?

答えて

0

ユーザーのセッションのUUIDを生成し、CookieまたはJSローカルストレージなどに格納します。次に、このUUIDに結びついたスコアをdbに保存します。その後、UUIDに関連付けられた名前と電子メールを保存します。

基本的にクライアント側で生スコアを計算/送信しないでください。生の回答をゲームからサーバーに送信し、サーバーにスコアを計算して保存させます。

0

あなたは参照元サイトがあなたのものであることを確認します。この

if(@isset($_SERVER['HTTP_REFERER']) && 
$_SERVER['HTTP_REFERER']=="http://yourdomain/ajaxurl") 
{ 
    //Request identified as ajax request 
} 

このような何かをしようとします。私はヘッダーを変更することでこれがハッキングされるかもしれないと聞いてきました...しかし、これは単なるゲームであり、XSSを通過してhttpを参照して自分のヘッダーを生成することができれば、勝つことができます...

関連する問題