¿Cómo detectar al mismo usuario anónimo si borra datos navegación?

PhDfailer

Estoy haciendo una aplicación web (MERN stack) y quiero dar varios usos gratuitos diarios al usuario incluso si no está logueado. No quiero forzar al usuario a registrarse para probar la aplicación, pero tengo que poner un límite al uso gratis ya que el uso de la aplicación me repercutirá en costes a mi.

El problema al que me enfrento es

1/ Como registrar al usuario anónimo.
De momento lo que estoy haciendo es que la aplicación detecte si el usuario no está logeado. Si no lo está le genera un "usuario anónimo" con una id que le proporciono. Esa id se envia al servidor que le proporciona un token cifrado con expiración de 24h. Es un token igual que el que usan los usuarios logeados y por tanto confiere permiso para usar la app. El usuario no podría generar nuevos token de por sí porque la clave para cifrar está en el servidor.

(Problema sin resolver) 2/ Qué hacer si el usuario anónimo borra sus datos de navegación

Esta id y token anónimos se almacenan en almacenamiento local y/o cokies, pero si el usuario es un poco avispado y borra los datos en el navegador, la aplicación detectará que no está logeado y le proporcionará una nueva id y token. Esto no se como resolverlo. Lo único que se me ocurre es usar la IP del usuario y validar si ya se le proporcionó un token con antelación, pero no sé si esto es posible/legal/viable. Y aún así tendría sus limitaciones, ya que la IP puede cambiar (aunque eso me preocupa menos, me parece más dificil de abusar)

¿Cómo lo suelen hacer las web en general? ¿O simplemente toca tragar con que algunos usuarios sean listos y "abusen" del sistema así?

keiya

Es difícil detectar a un usuario anónimo que borra sus datos de navegación, ya que esto implica que el usuario está tratando de ocultar su identidad y su actividad en línea. Sin embargo, hay algunas cosas que se pueden hacer para tratar de rastrear a un usuario anónimo:

Utilizar herramientas de análisis web para rastrear a los usuarios anónimos: Existen herramientas de análisis web que pueden ayudar a rastrear a los usuarios anónimos a través de cookies y otros rastros dejados en el navegador. Estas herramientas pueden proporcionar información sobre la actividad del usuario en línea, incluyendo las páginas web visitadas y el tiempo que pasó en cada una de ellas.

Utilizar direcciones IP: Cada dispositivo que se conecta a Internet tiene una dirección IP única que puede utilizarse para identificarlo. Aunque el usuario puede cambiar su dirección IP utilizando una red privada virtual (VPN) o un servicio de anonimato en línea, es posible rastrear a los usuarios a través de su dirección IP utilizando bases de datos de direcciones IP.

Utilizar técnicas de seguimiento: Algunas técnicas de seguimiento, como el seguimiento de pixels, pueden utilizarse para rastrear a los usuarios anónimos a través de diversos sitios web. Estas técnicas implican el uso de pequeñas imágenes transparentes que se cargan en la página web y permiten a los rastreadores recopilar información sobre el usuario.

En general, es difícil rastrear a un usuario anónimo que borra sus datos de navegación de manera consistente, pero no es imposible. Si deseas proteger tu privacidad en línea, es importante utilizar herramientas de privacidad y anonimato, como una VPN, y ser cuidadoso al compartir tus datos personales en línea.

1 respuesta
Nyhz

No te planteas poner un login social via Google por ejemplo que permite a los usuarios logearse en 5 segundos sin demasiada molestia?

2 1 respuesta
frekaice

Yo me inclinaría en usar algo como fingerprintjs (https://fingerprint.com/) no es infalible, pero ya podrías llegar a detectar bastante más casos.

1 2 respuestas
PiradoIV

Si te va a costar dinero, limítalo sí o sí por IP (y ponle algo como CloudFlare delante). Limita a X usos cada 24h, con un mensaje del tipo "si quieres seguir usando el servicio gratis, con menos restricciones, regístrate".

Para detectar a esos usuarios, también puedes complicarles algo la vida y probar a detectarlos usando la cabecera ETag.

2 1 respuesta
PhDfailer

Me habéis dado buenas opciones, gracias.

#2 thanks Mr. ChatGPT
#3 Desde luego si al final me olvidara de dejar a usuarios anónimos probarlo esta sería la mejor opción
#4 este me gusta, especialmente porque tiene un free tier de hasta 20.000usos/mes. Estoy mirando toda la documentación
#5 Si obligatoriamente tengo que limitarlo, porque cada llamada a la API a mi me cuesta entre 0.5 y 2 céntimos. Mi idea era limitarlo a 3 usos al día tanto para usuarios anónimos como para registrados.

1 2 respuestas
Midefos

Un filtro de IP?

JuAn4k4

#6 Te doy otras ideas:

Sandbox: Los anónimos consiguen lo mismo pero no con el mismo “acabado”. Por ejemplo firmar con un certificado gratuito self-signed en lugar de hacerlo con el certificado bueno.

Free Trial Account: Dar 1 uso al mes gratis o como sea por registrarse (sin sub). En lugar de anónimo.

Dar acceso a una cuenta de demo para ver los resultados.

Ofrecer una demo gratuita en directo o por webinar abierto.

2
Mandarino

yo pondra ratelimit por ip y otro ratelimit que aplique a todos los users anonimos a la vez (por ejemplo 500 al dia), para que si te hacen la liada no acabes palmando mas de X eur nunca

2
JuAn4k4

Por que te cuesta tanto por cada uso ?

W0rd

#6 no puedes ofrecer una demo con las respuestas de la api en una cache? Por cierto, ese precio por uso es altísimo.

radykal

Pues lo de limitar por IP no me parece razonable hoy en día, donde las redes móviles y algunas redes de fibra usan CG-NAT donde un buen puñado de usuarios salen con la misma IP. Lo del fingerprint que comenta #4 parece mejor opción, seguramente cree algún hash basado en diferentes parámetros intrínsecos al dispositivo.

Usuarios habituales

  • radykal
  • JuAn4k4
  • Mandarino
  • Midefos
  • PhDfailer
  • frekaice
  • Nyhz