What techniques do people use when protecting data (e.g., preventing a user downloading the whole dataset) they are overlaying on top of Google/Yahoo/Bing etc.?

  • You should ask this question on StackOverflow.com instead.
    – Jonas
    Jul 23, 2010 at 9:38
  • 3
    I don't think so. It envolves spatial applications and context that the people on SO know little about. They can give super useful hints/solutions, but here we have a context. Jul 28, 2010 at 12:17

5 Answers 5


Use WMS instead of WFS - then all you are sending is a picture of your data instead of your actual data.


You can restrict number of request/retrived features/etc per second/hour per ip. Annother approch would be converting it to harldy readable format (i.e. custom projection) or rasterizing vector data (as Google/MS does). You may also try to encrypt it, but I think, as cipy said, the best way is not to show it ;)


Keep the source off the Internet. Implement a proxy webpage and check the parameters/urls. Only allow certain parameters etc, if they don't match the proper ones reject. This could allow you to limit usage by IPs etc..

If your users login. You can add token handling.

If you use ArcGIS Server here is esri's page with sample proxy code: http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/arcgis/help/jshelp_start.htm#jshelp/ags_proxy.htm


For Google Maps or any Web Accessible Mapping platform is a good idea to hold your data on your own server and use php (or asp - et al) to control whom has access. This a good method for doing this in Google Maps API - using a MySQL Database and PHP http://code.google.com/apis/maps/articles/phpsqlsearch.html#outputxml

*First, you should put your database connection information in a separate file. This is generally a good idea whenever you're using PHP to access a database, as it keeps your confidential information in a file that you won't be tempted to share. In the Maps API forum, we've occasionally had people accidentally publish their database connection information when they were just trying to debug their XML-outputting code. The file should look like this, but with your own database information filled in. phpsqlsearch_dbinfo.php*:

I use this route with data held in postgres - only admin has control. Some other methods can be used (ip restrictions etc)


It is very difficult to restrict a Users to reproduce the layers (i am assuming you are talking about GIS data). That is why I will suggest you protect data using Cryptography or Digital Watermarking.

For more info see How can we protect GIS data?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.