2009-09-02 5 views
1

J'ai un service web que je veux utiliser sur plusieurs domaines. Toutefois, je souhaite limiter les sites (domaines) pouvant accéder à mon service Web.Comment limiter les domaines qui peuvent appeler ma page/service web

Par exemple, je souhaite qu'une demande faite par une page du site www.Site-A.com s'exécute et qu'une demande de www.Site-B.com soit refusée.

Existe-t-il un moyen de le faire avec ASP.NET/IIS?

+0

Parlez-vous de domaines DNS plus larges ou de domaines de sécurité Windows? – AnthonyWJones

+0

plus large DNS, merci –

Répondre

1

Si je comprends bien votre question, vous avez un contenu Web qui peut être référencé par d'autres pages en dehors de votre domaine. Ces pages auront été chargées dans un navigateur, puis les demandes de références dans ces pages tenteront d'obtenir du contenu de votre site. Est-ce que cela décrit votre scénario?

Si oui, alors la seule chance que vous avez pour y parvenir est d'exiger que les requêtes soient livrées avec un en-tête referer (ce qui est normal mais certains navigateurs permettent à l'utilisateur de le supprimer). Vous pouvez ensuite examiner le contenu de l'en-tête referer dans votre code pour tester si vous souhaitez continuer avec la demande.

Vous pouvez examiner le referer avec ce code: -

var referer = new Uri(Request.ServerVariables("HTTP_REFERER")); 
if (referer.Host.ToLower() == "www.site-a.com") 
    //Allow access 

caveat

Cette technique ne peut être utilisée de façon informelle, il n'y a aucun moyen d'authentifier l'en-tête referer pour que chacun puisse usurper ce en utilisant des outils assez simples.

+0

Merci Anthony. Pour mon besoin, cela aidera. C'est l'endroit pour vous dire que j'ai vu vos réponses sur plusieurs questions et apprécié! –

1

Vous pouvez vérifier l'adresse IP de l'utilisateur distant et agir en conséquence. Vous pouvez également utiliser l'en-tête Referer de la requête, mais cela peut être usurpé.

+0

Je peux avoir l'adresse IP - mais le problème est le site qu'il utilise et non l'adresse IP de l'utilisateur. J'ai édité ma question pour l'expliquer. Je vous remercie! –

+0

Si c'est le cas, ne pouvez-vous pas regarder le domaine de quelque fournisseur whois? :) – cwap

Questions connexes