2012-11-27 5 views
1

Je développe actuellement une application mobile utilisant Sencha Touch 2 et Phonegap. C'est un jeu où vous pouvez "check-in" à certains endroits et obtenir des points chaque fois que vous réussissez (comme dans Foursquare).Comment sécuriser un service Web de géolocalisation?

Je voudrais rendre impossible pour un gars intelligent (par exemple, quelqu'un qui a décompilé mon apk) pour exécuter le service Web REST (par exemple, MyWebService/checkin? Access_token = ABCDE & latitude = 12 345 & longitude = 6789) avec son ordinateur ou tout autre appareil en dehors de l'application.

Avez-vous une idée de la façon dont je pourrais y parvenir?

Merci beaucoup,

Répondre

2

En termes absolus, ce que vous cherchez est impossible - si l'application sur l'appareil contient la clé et le code nécessaire pour envoyer un message valide, et l'appareil permet à l'utilisateur de décompiler applications, alors n'importe qui peut théoriquement l'ingénierie inverse et envoyer les messages qu'ils veulent. En pratique, il ne vaut pas la peine de s'inquiéter - personne n'y mettra autant d'efforts, et vous pourrez probablement détecter assez facilement les comptes ayant une activité suspecte. Il suffit d'utiliser https et un jeton simple à partir du code de l'application pour empêcher quiconque de voir l'activité du réseau mais n'ira pas jusqu'à creuser le code de l'application.

+0

C'était ce dont j'avais peur ... Je vais juste faire des contrôles sur le côté serveur pour détecter une activité suspecte. Merci beaucoup pour votre aide ! –

0

couple d'options (selon votre scénario exact):

  • Faire cuire les informations utilisateur et la clé de l'application dans la clé API de sécurité. Cela garantirait que seuls les titulaires de compte valides peuvent utiliser l'API. Jetez un oeil à OAuth
  • Surveillez par compte ou par activité de service de connexion et recherchez des modèles suspects. Par exemple, si l'application fonctionne dans le temps de réflexion de l'utilisateur, vous vous attendez à un faible nombre d'appels par seconde.
Questions connexes