2010-05-17 6 views
2

J'ai une application iPhone accédant à un service Web ASP.NET pour les données. Puisque je construis à la fois la partie ASP.NET et la partie iPhone de l'application, et que nous allons bientôt la publier dans l'Appstore, j'aimerais savoir quelles vérifications de sécurité je dois faire.Sécurité de l'API du service Web ASP.NET

Le débit de base du programme (sans divulguer trop d'informations à ce sujet) est la suivante -

. Connexion (Entrez le nom d'utilisateur, transmettez l'application)
. Écran principal où les données sont chargées depuis un webservice et présentées
. Et poster des données après quelques mises à jour par l'utilisateur

J'utilise POST pour envoyer les données au Webservice via HTTPS. Je désinfecte les entrées, vérifiant la longueur des entrées, mais c'est la limite de mes connaissances en ce qui concerne la sécurité va. Tous les autres conseils sont grandement appréciés! Edit: Je devrais probablement ajouter que notre service doit être abonné séparément et le composant iPhone de celui-ci ne peut pas être utilisé seul. Ainsi, l'utilisateur moyen n'aura pas d'identifiants de connexion. Et l'application elle-même contient des données sur les soins de santé, alors je préfère que personne ne tente d'attaquer depuis ma page de connexion.

Merci,
Teja.

+0

Enregistrez-vous le nom d'utilisateur et le mot de passe sur l'appareil ou demandez-vous simplement à l'utilisateur de le saisir à chaque fois? – Rudiger

+0

En ce moment, je stocke le nom d'utilisateur et oblige l'utilisateur à entrer le mot de passe à chaque fois. –

Répondre

2

Il y a un certain nombre de choses à examiner. Vous contrôlez à la fois le client et le serveur, vous devez donc prendre une série de mesures d'atténuation. Il semble que vous adoptiez la bonne approche, mais vous devez vous concentrer sur les risques/menaces et définir une atténuation à ceux-ci.

Exemples:

  1. authentification est effectuée en utilisant un nom d'utilisateur et mot de passe. Qu'est-ce qui peut mal tourner ici? Les principales menaces semblent être l'interception d'informations d'identification sur le réseau ou la perte de l'appareil (ou l'accès à celui-ci). Ceux-ci exposeraient les informations d'identification à un attaquant. Si vous utilisez SSL pour crypter le trafic filaire, il est difficile de les détecter sur le réseau. Mais si vous stockez les informations d'identification sur un périphérique, SSL ne vous protège pas ici. Ce que vous pouvez vouloir considérer sont OAuth (authentification déléguée) ou en stockant des versions hachées des qualifications avec une sorte d'expiration. L'itinéraire OAuth est recommandé et évite à un utilisateur d'entrer et de stocker les informations d'identification dans votre application. Au lieu de cela, l'appareil stocke une «clé» indépendante de son nom d'utilisateur et de son mot de passe. Ils peuvent ensuite se connecter à une application Web et révoquer l'application. Le stockage des informations d'identification hachées avec une expiration n'est pas aussi sûr mais pourrait être plus facile à implémenter à court terme car OAuth nécessite des changements de serveur et de client.
  2. Les périphériques tels que l'iPhone peuvent offrir un niveau de cryptographie et de protection contre les attaques locales, mais vous devriez envisager de crypter les données stockées par votre application. Vous devriez également garder la quantité de données stockée au minimum. Cela peut être un défi à mettre en œuvre, mais vous devez gérer les compromis avec vos utilisateurs et la gestion.

Il ya quelques resourcesout que vous voudrez peut-être lire. Matériel pour Android ou d'autres plates-formes mobiles peut être une lecture utile aussi.

Sécurisation de l'ASP.NET Web Services

Microsoft a publié certains guidance (et WCF security connexes) dans cette zone, mais l'accent a tendance à être sur l'aspect des services Web. Vous devez envisager une approche plus globale de la sécurité. Étant donné que l'application est une application ASP.NET comme les autres, vous devez rechercher les ressources de sécurité ASP.NET générales telles que Beginning ASP.NET Security et P&P Security Guidelines: ASP.NET. Vous pouvez également faire quelques more searching sur StackOverflow.

+0

Merci, je suis déjà le cryptage de tout contenu que l'utilisateur stocke dans l'iPhone, je vais regarder OAuth. Mon autre souci en ce moment est la sécurité des données et des bases de données à la fin des services Web. Toute aide sur ce sera génial. –

+0

J'ai mis à jour mon message avec des informations sur la sécurité du service Web. –