Search code examples
silverlightwcf-securitydataservice

how to limit access to a silverlight-enabled data service?


We have a Silverlight app which we wrote which calls a Silverlight-enabled data service. The Silverlight app cannot require a login, as it is required to present data to the unauthenticated public.

We have some schmoe who took the time to examine our Silverlight app, one way or another figure out what service it is calling, and then wrote his own client to slurp off the data so he can post it on his site and pretend like it is his. We need to prevent this.

How can i limit my data service somehow to ONLY accept requests from my silverlight app? I tried using the allow-from domain uri setting in the clientaccesspolicy.xml file to limit access to the service only from the domain in which the silverlight app sits (say mydomain.com). This did absolutely nothing though, and the service is still serving up requests to clients from outside the domain. (I tested this by putting my SL app on a different domain under our control).

What is the proper/best/most effective way to limit the data service so only our app can use it? Thanks!!!

I'm using SL 3 and .NET 3.5.


Solution

  • The clientaccesspolicy.xml tells the Silverlight application which Webservice it can consume. Not preventing people accessing the Webservice.

    You can try using a authentication login even though its not required. This prevents 'schmoes' accessing your webservice.

    Also use Dotfuscator to prevent 'schoes' to disassemble your Silverlight application and acquire the login.