Lo primero para evitar que los robots roben sus datos no es tecnológico, es legal. En primer lugar, asegúrese de tener el lenguaje correcto en los Términos de uso de su sitio, ya que lo que está tratando de evitar no está permitido y es defendible desde un punto de vista legal. En segundo lugar, asegúrese de diseñar su estrategia técnica teniendo en cuenta los problemas legales. Por ejemplo, en los EE. UU., Si coloca los datos detrás de una barrera de autenticación y un atacante se la roba, es probable que sea violation of the DMCA law. En tercer lugar, busque un abogado que pueda asesorarlo sobre cuestiones de IP y DMCA ... gente amable en StackOverflow no es suficiente. :-)
Ahora, acerca de la tecnología:
Una solución razonable es requerir que los usuarios sean autenticados antes de que puedan acceder a su Ajax sensibles llama. Esto le permite simplemente monitorear el uso por usuario de sus llamadas Ajax y (manual o automáticamente) cancelar la cuenta de cualquier usuario que haga demasiadas solicitudes en un período de tiempo particular. (o demasiadas solicitudes totales, si está tratando de defenderse contra un enfoque lento).
Este enfoque, por supuesto, es vulnerable a bots sofisticados que automáticamente registran nuevos "usuarios", pero con una implementación de CAPTCHA razonablemente buena, es bastante difícil construir este tipo de bot.(Consulte la sección "elusión" en http://en.wikipedia.org/wiki/CAPTCHA)
Si está tratando de proteger los datos públicos (sin autenticación), entonces sus opciones son mucho más limitadas. Como se señaló en otras respuestas, puede probar los límites basados en la dirección IP (y se encuentran en conflicto con los grandes usuarios proxy corporativos), pero los atacantes sofisticados pueden evitar esto distribuyendo la carga. También hay un software sofisticado que mira cosas como el tiempo de solicitud, patrones de solicitud, etc. e intenta detectar bots. Los sitios de poker, por ejemplo, dedican mucho tiempo a esto. Pero no espere que este tipo de sistemas sea barato. Una cosa fácil que puede hacer es extraer los registros de su sitio web (por ejemplo, usando Splunk) y encontrar las direcciones N IP más importantes que llegan a su sitio, y luego hacer una búsqueda IP inversa. Algunos serán proxies corporativos o ISP legítimos. Pero si reconoce el nombre de dominio de un competidor entre la lista, puede bloquear su dominio o hacer un seguimiento con sus abogados.
Además de pre-robo de defensa, también puede ser que desee pensar en la inserción de un "tarro de miel": deliberadamente información falsa que puede realizar un seguimiento posterior. Así es como, por ejemplo, los fabricantes de mapas captan el plaigarismo: insertan una calle falsa en sus mapas y ver qué otros mapas muestran la misma calle falsa. Si bien esto no impide que personas determinadas absorban todos tus datos, te permite saber más tarde quién está reutilizando tus datos. Esto se puede hacer insertando cadenas de texto únicas en el resultado de su texto, y luego buscando esas cadenas en Google más tarde (suponiendo que sus datos sean reutilizables en otro sitio web público). Si sus datos son HTML o imágenes, puede incluir una imagen que apunte a su sitio, y puede rastrear quién la está descargando, y buscar patrones que pueda usar para destruir a los expedicionarios.
Tenga en cuenta que el enfoque de cifrado javascript indicado en una de las otras respuestas no funcionará para las sesiones no autenticadas: un atacante puede simplemente descargar el javascript y ejecutarlo como lo haría un navegador normal. Moraleja de la historia: los datos públicos son esencialmente indefendibles. Si desea mantener los datos protegidos, colóquelo detrás de una barrera de autenticación.
Esto es obvio, pero si sus datos son buscables públicamente por los motores de búsqueda, ambos necesitarán una solución que no sea AJAX (Google no leerá sus datos de AJAX) y querrá marcar esos páginas NOARCHIVE para que sus datos no se muestren en la memoria caché de Google. También es probable que desee una lista blanca de direcciones IP del rastreador del motor de búsqueda que permita en las páginas rastreables del motor de búsqueda (puede trabajar con Google, Bing, Yahoo, etc. para obtenerlas), de lo contrario, los robots malintencionados simplemente podrían suplantar Google y obtén tus datos
En conclusión, quiero hacer eco @kdgregory arriba: asegúrese de que la amenaza es suficientemente real que vale la pena el esfuerzo requerido. Muchas empresas sobreestiman el interés que otras personas (tanto clientes legítimos como actores nefastos) tienen en sus negocios. Puede ser que el tuyo sea un caso extraño en el que tienes datos particularmente importantes, es particularmente valioso para obtener, debe ser de acceso público sin autenticación, y tus recursos legales estarán limitados si alguien roba tus datos. Pero todos aquellos juntos son ciertamente un caso inusual.
P.S. - Otra forma de pensar acerca de este problema que puede aplicarse o no en su caso. A veces es más fácil cambiar la forma en que funcionan sus datos, lo que evita tener que protegerlo. Por ejemplo, puede vincular sus datos de alguna manera a un servicio en su sitio para que los datos no sean muy útiles a menos que se utilicen junto con su código. ¿O puede incrustar publicidad en ella, de modo que donde sea que se muestre le paguen? Y así. No sé si alguna de estas mitigaciones se aplica a su caso, pero muchas empresas han encontrado maneras de regalar cosas gratis en Internet (y alentar en lugar de evitar una amplia redistribución) y aún así ganar dinero, por lo que un híbrido gratis/estrategia de pago puede (o no) ser posible en su caso.
"Si se trata de información pública, acepte eso y no lo combata, en su lugar, encuentre formas de capitalizarlo". +1 –
Sí, esa oración solo merece un +1. – anddoutoi