アンドロイドアプリにはfacebookのログインしかありません。ここでFacebookのログインのみを使用するアプリからスコアを安全に提出するには?
は、サーバーで何が起こるかです:POSTリクエストが体内にFacebookのユーザーのアクセストークンを使用して送信されたときに
ユーザーが作成されます。
ユーザーがPOSTリクエストを経て作成されるたびに、APIトークンが生成され、次のように応答として送信:
{"message":"User Successfully Created","api_token":"ACITyBKf0jKrfqOFumTMcaEEJ8jU151crRdESMPmBj8zbeENslULHfNXlKeo"}
サーバーで生成されたAPIトークンが格納されているので、私はこれをしましたアンドロイドアプリのローカルストレージにあり、他のリクエストをするために必要です。ユーザが既にサーバに存在する場合
次に、応答は
{"message":"User Already Exists!!","api_token":"ACITyBKf0jKrfqOFumTMcaEEJ8jU151crRdESMPmBj8zbeENslULHfNXlKeo"}
なり、ユーザがアプリケーションを削除し、再度インストールする場合です。
今、スコアを提出し、PATCH要求はして送信することがある。
ヘッダ:
Content-Type:application/x-www-form-urlencoded
api_token:ACITyBKf0jKrfqOFumTMcaEEJ8jU151crRdESMPmBj8zbeENslULHfNXlKeo
fb_id:xxxxxxxxxx
ボディ:
distance:2
golds:19
xp:23
(注:私がテスト上記の要求は、郵便局)
今、問題は私が抜け穴を見つけたことです。
誰かがいつでも自分のFacebookのユーザーアクセストークンとそのFacebookのIDを見つけることができます。したがって、ユーザーがそのユーザーアクセストークンを使用してPOSTリクエストを行うと、api_token(「User Already Exists !!」というレスポンス)が返されます。そして、彼らがapi_tokenとfb_idを持っていれば、彼らは彼らが望むものに彼らのスコアを修正するPATCH要求をすることができます。
私は間違っていますか?このようにサーバーをハッキングしないようにするにはどうすればよいですか?
私を助けてください。私はapiデザインの初心者です。
おかげ