リクエストの送信元を確認する方法がないため、これを 100% 安全にする方法はありませんが、ハイスコアのハッキングを少し難しくする方法はあります。基本的にはあいまいさによるセキュリティですが、ネットワーク接続を調べるだけでなく、実際のアプリ バイナリを掘り下げる必要があります。
まず、アプリの「パスワード」を選択します。スコアだけを送信する代わりに、スコアと連結されたパスワードの暗号化ハッシュ (SHA-256 など) も送信します。サーバー側で、スコアと連結されたパスワードのハッシュを再計算し、これが送信されたハッシュと一致するかどうかを確認します。そうでない場合は、スコアの提出を拒否します。アプリが行うリクエストを調べてもスコアを偽造できないため、これは最初のアプローチよりもいくらか安全です。ただし、アプリからバイナリ コードを調べることで、攻撃者はパスワードを回復し、スコアの送信を偽造することができますが、これは非常に複雑であり、目的には十分である可能性があります。
もちろん、これはスコアを複製できることを排除するものではありません (適切なハッシュがわかれば、何度でもスコアを送信できます)。これを防ぎたい場合でも、スコアを送信するには、次のようにする必要があります: サーバーから (ランダムな) ID 番号を要求し、スコア + ID + パスワードをハッシュし、スコア + ハッシュを送信すると、サーバーはこのハッシュが適切かどうかをチェックします。サーバーは ID 番号を記憶する必要があるため、これはプログラミングが少し複雑になります。より簡単な解決策は、各スコアをプレーヤーの名前に関連付け、プレーヤーごとに 1 つのスコアのみを許可することです。次に、パスワード + 名前 + スコアをハッシュできます。