2010-04-11 5 views
1

Par précaution, quelle est la meilleure pratique pour m'assurer que seule mon application a accès à mon webservice hébergé sur un serveur public? Dois-je implémenter I clé partagée ou quelque chose? Mon service Web est hébergé sur Googles App Engine et mon application fonctionne sur les iPhones et iPads.Assurer un accès exclusif au webservice

Si vous avez besoin de plus d'informations, il suffit de demander.

Merci, Henrik

+0

Je suppose que "l'accès exclusif" n'est pas clair pour moi - seulement votre iphone? seulement un ensemble limité d'iPhones? seulement votre application sur l'iPhone de quelqu'un? seulement les utilisateurs autorisés? Est-ce que «exclusif» signifie «sécurisé», c'est-à-dire que vous craignez de protéger des données sensibles ou d'essayer de vous assurer que personne d'autre n'écrit une application qui tire parti de vos services Web? –

Répondre

2

une sorte d'authentification défi/réponse serait votre meilleur pari, mais vous pouvez utiliser quelque chose d'aussi simple que d'une clé qui est envoyé avec chaque demande. il pourrait être assez facile pour quelqu'un avec un renifleur de paquets d'inverser cette sécurité bien que - je suppose que le temps que vous y consacrez sera en rapport avec combien vous vous en souciez vraiment :)

1

Vous pouvez programmer votre application uniquement demandes qui incluent votre iPhone's unique identier - voir question StackOverflow [Unique identifier for an iPhone app]. L'identifiant peut encore être reniflé, donc en fonction de vos besoins, vous aurez peut-être besoin de méthodes pour le contrer.

2

Si vous avez besoin que les utilisateurs de votre application iphone entrent un identifiant/mot de passe, il est trivial de réaliser ce que vous voulez. Mais je suppose que vous ne voulez pas que ..

Sans cela, il n'y a aucun moyen pour vous assurer que votre application a un accès exclusif à vos services Web. Les gens peuvent toujours sniffer le trafic HTTP et l'usurper. Les utilisateurs peuvent décompiler/désosser votre application pour trouver la clé/mot de passe.

Voir d'autres discussions sur StackOverflow - How to restrict access to my web service? et How can I create and use a web service in public but still restrict its use to only my app?

+0

+1 pour signaler les messages associés/en double – slugster

1

Eh bien, j'ai eu le même problème. Ce que j'ai réalisé, il n'y a pas de solution à 100%. Ce que j'ai fait, j'ai utilisé une approche différente. J'ai implémenté OAuth et SSL, bien sûr et que de faire un algorithme pour mon service web pour apprendre le comportement de mon application. J'essaie de mettre cet algorithme dans une sorte de modèle, afin qu'il puisse être utilisé dans d'autres scénarios. Il est encore en développement, donc voici le code de l'application de console simple qui va simuler cet algorithme. Espérons que cela peut aider: https://github.com/vjeftovic/LearningRESTSimulation

Questions connexes