Cómo crear un ranking global seguro para juegos online
Una clasificación global aumenta mucho el tiempo que la gente dedica a un juego, y es también la parte más fácil de romper. Cualquier puntuación que llegue desde el navegador es, por definición, un dato que el jugador controla. Así se construye un ranking que signifique algo.
Por qué una puntuación enviada desde el navegador no vale nada
El código que corre en el navegador está en manos de quien juega: puede leerlo, modificarlo y enviar a tu servidor la petición que quiera con la puntuación que quiera. No hay ofuscación que lo impida, solo la retrasa.
Asumir esto desde el principio ahorra mucho trabajo inútil. La pregunta correcta no es cómo impedir que alguien mienta, sino qué comprobaciones puede hacer el servidor para que mentir no salga a cuenta.
Las cuatro comprobaciones del servidor
1. Sesión de juego real
La partida se abre con una petición al servidor que devuelve un identificador. Una puntuación sin sesión asociada se rechaza. Esto elimina de golpe el envío directo sin haber jugado.
2. Pertenencia de la sesión
La sesión tiene que pertenecer a la cuenta que envía la puntuación. Sin esta comprobación, cualquiera puede reutilizar el identificador de otro.
3. Rango plausible
Cada juego tiene un máximo teórico alcanzable. Una puntuación por encima de ese límite se rechaza sin más análisis. Es una comprobación trivial que corta la mayoría de los intentos.
4. Coherencia con el tiempo
Si el juego necesita al menos treinta segundos para acumular cierta puntuación, una sesión de cuatro segundos con esa puntuación no es válida. No hace falta un modelo complejo: un mínimo por punto ya filtra lo evidente.
Qué datos guardar, y sobre todo cuáles no
Un ranking necesita un apodo y un número. Nada más.
- Sí: apodo elegido por la persona, mejor puntuación por juego, marca de tiempo.
- No: dirección IP, identificadores de dispositivo, ubicación, movimientos dentro de la partida.
Guardar menos no es solo una obligación legal: es también menos superficie que proteger y menos que explicar en un incidente.
Cuando el público puede incluir menores
Un juego retro en el navegador lo abre cualquiera, y una parte serán menores de edad. Eso cambia el criterio por defecto.
- Nada de perfilado ni de identificadores publicitarios, en ningún caso.
- El apodo es el único dato visible públicamente, y debe poder cambiarse o borrarse.
- El borrado tiene que ser efectivo y accesible, no un formulario de solicitud.
- Ninguna medición de terceros antes de un consentimiento explícito.
Es más fácil construirlo así desde el principio que recortarlo después.
Validar el apodo sin abrir un agujero
El apodo es texto que escribe una persona y que se muestra a todas las demás: el punto clásico donde se cuela código en una página.
Dos medidas resuelven el problema entero: aceptar solo un conjunto declarado de caracteres con una longitud máxima, y escapar el texto al insertarlo en el documento. Ninguna de las dos es opcional; la segunda protege incluso si la primera se relaja algún día.
Qué hacer con quien lo intenta igualmente
Siempre habrá quien encuentre un hueco. La respuesta razonable no es una guerra técnica, sino poder revisar y retirar una entrada concreta sin tocar el resto, y guardar lo suficiente para entender qué pasó. Una clasificación que se puede corregir vale más que una que se pretende inviolable.
Si prefieres encargarlo
Estas comprobaciones son las mismas que protegen cualquier operación de una aplicación de empresa:
Desarrollo de aplicaciones web: Empresa de desarrollo de aplicaciones web: arquitectura, autenticación, base de datos y despliegue de aplicaciones que sustituyen hojas de cálculo y procesos manuales.
Continuar leyendo
Nadie vende un ranking con estas reglas ya hecho; es lógica propia. Sobre cuándo compensa construir a medida:
Qué es el desarrollo de software a medida y cuándo conviene: Criterios para decidir entre software a medida y producto cerrado: señales de que compensa, casos en los que no, coste real de propiedad y cómo pedir presupuesto.
