2009-06-18 6 views
2

J'ai un webservice qui est utilisé en insérant un morceau de javascript dans la page. Le Javascript analyse la page pour une certaine chaîne et fait une demande à mon WebService d'ASP.NET JSON. Le javascript utilise ensuite le JSON pour afficher du contenu.Empêcher l'accès direct au service Web JSON

Ce que je voudrais faire, c'est d'empêcher quiconque d'accéder directement à mon service JSON.

Le service est l'accès à l'aide d'une requête jQuery Ajax.

Est-ce possible?

Cordialement, TheLorax

Répondre

4

Mon expérience est principalement avec PHP, de sorte que vous pourriez avoir à convertir le concept à ASP.NET;)

Si le code fait partie de la même application Web (ou sur la même instance de serveur) et je veux pour le verrouiller, comme dans, il est derrière un système d'authentification, je stocke une variable sur la session en disant que l'utilisateur est authentifié. Vous pourriez être en mesure de faire la même chose avec ASP.NET et l'état de la session. Cela dépend si le service Web ou tout autre service du JSON a accès à l'état de session de cet utilisateur.

Une autre option consiste à créer une sorte de clé de hachage côté serveur avec une clé privée. Passez cela à travers vos demandes au service JSON qui connaît également la clé privée. Le problème avec cette solution est qu'il y a un peu de coordination pour s'assurer que le service JSON décrypte correctement, et que les gens puissent encore utiliser le service JSON d'une autre manière.

-1

Pas vraiment.

Si vous avez un groupe d'utilisateurs connu, vous pouvez empêcher d'autres utilisateurs d'accéder à votre service en émettant une clé API ou similaire. Mais vos utilisateurs valides pourront accéder à votre JSON sous la forme qu'ils désirent.

Vous pourriez essayer d'obscurcir les choses, mais cela ne vaut probablement pas la peine. Et puisque vous ne pouvez pas fermer cela, vous devriez adopter l'esprit mashup du Web 2.0 et être heureux si quelqu'un accède à votre service et présente l'information de manière nouvelle et innovante à laquelle vous n'avez même pas pensé. Cela devrait rendre votre service plus populaire.

Si cela finit par vous coûter un revenu réel, vous devez vous en remettre à des moyens légaux pour l'arrêter, car les mesures techniques peuvent être contournées.

Questions connexes