2009-06-27 4 views
3

J'écris une application Silverlight qui lit et écrit des données dans une base de données côté serveur via certains services Web WCF.Sécurisation d'un service WCF pour qu'il ne puisse être appelé que par une application Silverlight

Quelle est la meilleure façon de sécuriser ces services Web?

Mon objectif est de m'assurer que les services ne peuvent pas être appelés par d'autres applications et potentiellement spammés par des demandes d'ajout d'éléments à la base de données. Seule l'application Silverlight doit pouvoir y accéder.

Répondre

4

En général, vous ne pouvez rien supposer du client. Si vous tentez d'empêcher les applications autres que Silverlight de toucher votre site, un client malveillant peut facilement prétendre être une application Silverlight, et vous êtes de retour à la case départ. C'est-à-dire que ce n'est pas un moyen efficace de sécuriser un serveur. Pour sécuriser votre serveur, supposons que tous les clients accèdent à votre site et commencent à partir de là.

Edit:

Permettez-moi amender ce à dire que si vous voulez entrer dans le monde de l'authentification mutuelle, vous pouvez configurer une infrastructure PKI pour gérer certs, certs utilisateur d'émission pour tous vos utilisateurs, et vous savoir qui sont vos utilisateurs. Pourtant, l'un d'eux peut être malveillant (et talentueux) et injecter un cert dans un autre client.

8

Don a absolument raison qu'il n'y a pas aucune façon infaillible de s'assurer que le client est une application Silverlight.

Cependant, je pense que vous demandez plus sur ce qui suit: Puis-je m'assurer que seules les personnes de confiance se connectent au service. La réponse ici est (fondamentalement) un oui, ou au moins nous avons des moyens normalisés de le faire.

Vous allez généralement vouloir envisager deux approches différentes:

  • Transport sécurité au niveau. Est-ce que quelqu'un a trafiqué le trafic? Nous utilisons SSL pour cela.
  • Authentification. Est-ce que je parle à quelqu'un en qui j'ai confiance? Ici, nous utiliserons typiquement l'un des mécanismes d'authentification (Forms Auth, disons). Vous pouvez utiliser l'authentification par formulaires pour sécuriser à la fois Silverlight (en fait la page sur laquelle réside Silverlight) et les services WCF. Confusingly, SSL peut être utilisé (bien que ce soit rarement parce que c'est une douleur dans le cou) pour l'authentification.
+0

Commentaire très perspicace sur ce que Don a dit. Certainement un upvote. ;) –

Questions connexes