2013-05-04 4 views
3

J'ai une connexion db critique faite par le biais du fichier .asmx du service Web qui est accessible et peut être ouvert via le navigateur direct. Comment empêcher certaines méthodes et autoriser certaines méthodes à accéder à des utilisateurs non authentifiés?Comment sécuriser les services Web dans un fichier ASMX?

Ce problème est si grave pour mon application.

Répondre

7

Une méthode courante consiste à utiliser un jeton d'accès dans tous les appels de service Web. Le scénario devrait ressembler à ceci:

  1. L'utilisateur appelle une méthode de service Web "login", en transmettant certaines informations d'identification. (Cette devrait être sur une connexion sécurisée, vous pourriez avoir besoin de SSL pour cela, si ce n'est déjà fait pour chacun d'entre eux.)
  2. La méthode de service web "login" authentifie l'utilisateur, génère un jeton d'accès (un Guid fonctionne bien), stocke ce jeton d'accès (peut-être avec une fenêtre de temps pour laquelle le jeton est utilisable), et renvoie ce jeton à l'utilisateur dans la réponse.
  3. Toutes les méthodes de service Web suivantes (tout ce qui doit être sécurisé) nécessitent qu'un jeton d'accès soit fourni en tant qu'argument de méthode. L'utilisateur passe ce jeton d'accès dans tous ses appels.
  4. Chaque fois qu'une méthode de service Web est appelée, le système valide le jeton d'accès par rapport aux jetons générés connus (compte tenu d'une fenêtre, si vous souhaitez que les jetons expirent, ce que je recommande). rejette la demande.

Si vous avez déjà utilisé l'API Facebook, c'est un exemple courant de besoin de request a time-sensitive access token pour effectuer des appels API ultérieurs.

Questions connexes