¿Los scripts analíticos de Javascript no son susceptibles de piratear datos fácilmente?

En los entornos de producción, las secuencias de commands analíticas basadas en JavaScript (Google Analytics, Facebook Pixel, etc.) se inyectan en la mayoría de las aplicaciones web, junto con el ID único / ID de píxel, en Javascript simple.

Por ejemplo, airbnb usa Google Analytics. Puedo abrir mi console de desarrollo y ejecutar

setInterval(function() {ga('send', 'pageview');}, 1000);

lo que hará que el píxel de análisis se solicite cada 1 segundo, para siempre. Eso es 3600 requestes por hora desde mi máquina sola.

Ahora, esto se puede hacer fácilmente de forma distribuida, causando millones de requestes por segundo, desviando completamente los datos de Google Analytics para el evento de vista de pageview . Entiendo que la enorme cantidad de datos recostackdos corregiría este sesgo en cierta medida, pero que se puede compensar fácilmente aumentando la cantidad de requestes.

Mi pregunta es esta: ¿existen medidas preventivas para evitar que competidores o personas malintencionadas destruyan la integridad de los datos de las aplicaciones de esta manera? ¿GA o Facebook ofrecen tales opciones?

Sí, pero la parte insegura no viene para el Javascript. Por ejemplo, puede usar el protocolo de medición para transferir datos a una count. Aquí puede ver a muchas personas en la misma comunidad teniendo esto en count (y es fácil de resolver). https://stackoverflow.com/search?q=spam+google+analytics

Todos estos sistemas de medición utilizan llamadas HTTP para completar los datos en su "database". Si puede build la llamada correcta, puede enviar correo no deseado a todos y en todas partes (pero no lo haga, no sea malo).

https://developers.google.com/analytics/devguides/collection/protocol/v1/?hl=es-419

Esta página de Google Analytics explica qué es la medición del protocolo, JavaScript solo funciona como marco para crear y enviar el hit.

https://developers.google.com/analytics/devguides/collection/protocol/v1/?hl=es-419

Pero, entonces no todo está perdido. Por ejemplo, si intenta hacer eso en su browser con ese código, The Google Analytics FrameWork limita a 1 llamada por segundo y 150 por session (o valor de cookie). Sí, no es complicado saltar esa barrera, pero después vendrán otras barreras.

Por lo tanto, si usa el marco de JavaScript es seguro. Ahora imagine que hace lo mismo con Python, enviando http al server de Google Analytics. Es posible pero: aquí hay 2 cosas importantes que decir.

  • Google Analytics tiene un "firewall" proactivo para detectar Spammers y prohibirlos (cómo y cuándo lo hacen no es público), pero en mi caso veo mucho less spam que hace unos años.

  • También hay un par de buenas prácticas para evitar esto. Por ejemplo, almacene solo dominios bajo una list blanca, creando un filter para permitir solo el tráfico de su dominio https://support.google.com/analytics/answer/1033162?hl=en

  • También es una muy buena práctica proteger su comercio electrónico, utilizando un filter para include solo datos de ciertas tiendas o con ciertos parameters, "por ejemplo, marca == mi marca" o "CustomDimension == true". Excluya transactions con productos de más de $ 1,000 (controle sus límites y aplique filters proactivos). Toda esta barrera es compleja hasta la quiebra.

Si hace esto, protegerá mucho su dominio (porque es demasiado complicado conocer la combinación de UA + Domain Valid cuando crea un robot), pero todo el sistema se puede romper. En mi experiencia, solo veo 2 o 3 casos de daños provenientes de spammers o personas que quieren lastimarse, y en todo caso, podría evitarse si creara un filter proactivo. Por lo general, enviar spam spam solo a su count, casi nunca quiere lastimarlo. Facebook, Piwik y otras herramientas son más o less lo mismo.