2012-03-03 20 views
0

私のアプリは、ユーザーの所在地によって権限を与えます。デバイスがサーバに戻って位置を報告しない場合、そのサーバでの権限はnoneです。サインアップやログインなしのAndroidアプリでのユーザーIDの保護

できるだけハックセーフな状態にしたいので、権限はデバイスの現在の場所によって厳密に制限されています。

私はユーザー/デバイスを正確に識別できる場合、良い進歩ができます。そして、10分後にニューヨークに、そして10分後にロサンゼルスにいると報告すると、デバイスXをブロックできます(物理的に不可能)。

登録はありません。ユーザーは、アプリの使用を開始するにはキャプチャを解決する必要があります。それでおしまい!

Androidエミュレータを使用して、別の都市にある20種類のデバイスを偽装し、実際に使用しているかのように疑似データをサーバーに送信しないようにする方法はありますか?そうでない場合、ハッカーがそうすることを本当に難しくする方法がありますか?

+0

初心者の方でも、実際のデバイスをモックできます。 [ALLOW_MOCK_LOCATION](http://developer.android.com/reference/android/provider/Settings.Secure.html#ALLOW_MOCK_LOCATION)フラグをチェックすることから始めます。そうでないと、人々は前述のようにマーケットから市場に出てあなたのシステムをpwnすることができます[ここ](http://stackoverflow.com/a/7033876/967142)。 – Jens

答えて

1

あなたはほとんど運がありません。デバイスは、常に自分の位置を嘘つきにすることができます。ユーザーに迷惑をかけるような方法がある場合(つまり、無料のアカウントにサインアップできない場合)、これを行うかどうかを確認することができます。最初の使用時に人々に「ログイン」またはそれに相当するものを与え、クレデンシャルを保存してください。特権を持っていればIMEIのようなものを使うこともできますが、エミュレータやシアン色のモデムを使っている人もそれを変えることができますが、それはもっと難しいと思われます。

これには1つの注意点があります。たとえば、2人の友人が互いに近くにいる場合は、適度に強力な暗号の保証を行うことができます。これを行うことができます。 this用紙を参照してください。

本当に高いセキュリティロケーションプルーフを実行することについての一般的な不可能な結果については、これはむしろ濃密なpaperを参照してください。確かに、あなたはおそらくまだ簡単ではないが、簡単には壊れないものをすることができます。

関連する問題