2010-09-29 5 views
1

Supposons que j'ai une méthode dans ma mise en œuvre du service WCF appelé Login et il est défini comme suit:Transmission de données privées via une méthode OperationContract de WCF?

[OperationContract] 
[WebGet(UriTemplate="login/{username}/{password}")] 
bool Login(string username, string password); 

De toute évidence, passer quelque chose comme http://localhost:80/login/user1/pass1 est pas très sûr, alors comment est l'est normalement traitée dans un repos WCF scénario?

+0

Sécurisez votre communication avec SSL, par ex. en utilisant https: // pour vos URL –

+0

@marc_c: Ceci est le scénario Ajax. Appeler cette valeur à partir de JS et transmettre ces valeurs en texte brut. Comment passer au SSL uniquement pour cet appel? Si ce n'était pas JS alors la méthode POST aurait résolu le problème en Http simple. – Pradeep

Répondre

0

L'autre option serait de faire du cryptage côté client, où l'utilisateur et le mot de passe sont cryptés via javascript, convertis en base64, puis appelés comme vous l'avez montré dans votre code. Ceci est évidemment moins sûr, car si un attaquant sait comment vous faites votre cryptage (en examinant votre code javascript), il a une longueur d'avance sur la rupture de votre cryptage. Mais cela, combiné avec SSL, pourrait être une solution viable pour vous en fonction de la sensibilité de votre site.

0

Une option serait d'exécuter l'ensemble de votre site en tant que SSL.

L'autre que vous mentionnez est d'envoyer le nom d'utilisateur et mot de passe dans un POST.

Y at-il une exigence qui vous oblige à le faire dans JS?

+0

WCF est un peu nouveau pour moi. Fondamentalement, j'ai besoin d'une application Android pour se connecter à l'application en faisant http://app.com/user/pass, mais je ne veux pas montrer l'utilisateur ou passer au moins en texte brut. Pouvez-vous clarifier (montrer l'exemple) de ce que vous voulez dire en envoyant le nom d'utilisateur et mot de passe dans un POST? Cela signifie-t-il que je devrais avoir deux méthodes, un POST (envoyer un utilisateur et passer) et un GET (Obtenir une valeur comme connexion réussie ou échec de connexion) ou puis-je récupérer un message de réussite et d'échec avec un POST. – Xaisoft

Questions connexes