4

ここに私の問題があります:

私はモバイルアプリを持っており、ユーザーの位置に応じて情報を提供したいと考えています (FourSquare のようなものを考えてください)。しかし、ユーザーの位置が本物であることを確認する方法は?

つまり、クライアントが http 経由でサーバーへのリクエストを使用するとします。

http://www.myserver.com/getdata?lat=X&long=Y

悪意のあるユーザーは値を簡単に変更できます。
次に、値が正確であることを確認する方法は?

4

4 に答える 4

1

アプリにあるpgp暗号化をいつでも使用でき、メッセージをデコードするサーバーにパケットを送信すると、リクエストを送信したプログラムであることがわかります。

したがって、ユーザーが座標を偽造したい場合、実際にそれを行うには、電話にあるソフトウェアをハッキングする必要があります。

それがあなたにいくつかのアイデアを与えることを願っています...

一方、サーバーへの最初の接続時にハッシュを発行し(認証など)、モバイルアプリケーションで簡単な計算を行うことができます: x your_hash と y your_hash またはそのようなもの(簡単なのでもっと複雑にする必要があります)推測する) サーバー上: http://www.myserver.com/getdata?lat=x&lon=y 次に: アプリのサーバー側: lat = lat/your_hash lon = lon/your_hash now if the lat/ lon はグリッドから外れているので、JochenJung が海のどこかで言ったように... リクエストは無視してかまいません。リクエストを送信したユーザーを特定したいという理由だけで、クエリ文字列に特定の識別情報が必要になります。これを追加の変数として使用して、より良い結果を作成できます。

于 2010-08-17T09:40:04.627 に答える
1

それはいけません。すでにおわかりのように、クライアントはサーバーに送信されたリクエストをいつでも操作できます。

サーバー側でできる唯一のことは、ありそうもない座標をフィルタリングすることです(たとえば、座標の意味に応じて海で)。

于 2010-08-17T09:16:36.483 に答える
0

私も同じことを考えていましたが、それは不可能だと恐れています。私が持っていたいくつかのアイデア:

  • サーバー側でも確認できる、座標のある種のハッシュをリクエストに追加します。これには、クライアントが暗号化アルゴリズム (およびキー) について知る必要があり、再びハッキング可能になります
  • 前回のリクエストから現在までの時間が、そのような場所の変更を許可しているかどうかを確認してください。最初のリクエストが詐欺ではないかどうかを知ることはできず、クライアントがどのような種類のトランスポートを使用しているかもわからないため、かなり困難です。
于 2010-08-17T09:23:20.553 に答える
0

誰かが電話を騙して、GPS 座標を別の場所に設定する可能性があります。@JochenJung が言うように、リクエストはいつでも変更できます。

于 2010-08-17T09:18:03.073 に答える