ALPR

Legal

Seguridad

Última actualización: 26 de septiembre de 2026

Esta página resume cómo ALPR protege cuentas y datos de torneos. Describe nuestras prácticas; no es una garantía de que el servicio no pueda abusarse.

Transporte

playalpr.com se sirve por HTTPS. La aplicación está detrás de Nginx y confía en el proxy para la IP del cliente (X-Forwarded-For / X-Real-IP) de modo que las acciones del sitio y de admin puedan registrar la dirección del visitante usada para la integridad del torneo.

Autenticación

Las jugadoras y jugadores entran con OAuth de Discord. El acceso con Discord no otorga administración, salvo que ese usuario de Discord ya esté vinculado como administrador. Un acceso con Discord iniciado desde la página de login de admin igual crea o actualiza una cuenta de jugador; no convierte a esa persona en administrador.

Las contraseñas de administrador se guardan con Argon2id. Los tokens de sesión se hashean (SHA-256) antes de almacenarse. Los intentos de acceso de administrador tienen límite de tasa y se guardan con IP. Las acciones de administrador se autorizan en el servidor, no solo ocultando la interfaz.

Sesiones y cookies

Las sesiones de jugador y de administrador usan cookies HTTP-only distintas (alpr_player y alpr_admin), SameSite=Lax y Secure en producción. Los formularios de administrador que cambian datos requieren un token CSRF. Las redirecciones públicas (OAuth y cierre de sesión) usan la URL pública configurada, no la dirección interna del proceso. La impersonación (alpr_impersonate) es solo una herramienta de depuración de administrador y se borra al cerrar sesión de admin o al dejar de impersonar.

Registro de auditoría

Las escrituras del sitio, la consola de admin, los comandos de Discord y las tareas programadas se guardan en un registro de solo añadido que solo abren administradores. Las escrituras HTTP del sitio y de admin incluyen la IP del visitante cuando la petición la trae. Los secretos en los detalles guardados (contraseñas, tokens, cookies y claves similares) se ocultan. Las reacciones de check-in en Discord usan el Gateway e identifican capitanes por ID de Discord, no por nombre de usuario.

Bot de Discord

Las interacciones entrantes de Discord se verifican con la firma Ed25519 de Discord. Las firmas inválidas se rechazan. El bot identifica usuarios por ID de Discord. El check-in de capitán en el canal designado usa una conexión Gateway además de los comandos slash por HTTP.

Subidas y secretos

Las imágenes de equipos, eventos, patrocinadores y casters se guardan en el servidor en rutas de subida controladas. No registramos ni mostramos hashes de contraseña, tokens de sesión, secretos CSRF, el token del bot de Discord, claves de OpenAI ni tokens de colector. Los tokens de stats de EA permanecen solo para admin en la página pública del evento.

Copias de seguridad

La base de datos de producción se respalda a diario. Los respaldos sirven para recuperación, no como archivo público.

Reportar una vulnerabilidad

Si crees que encontraste un problema de seguridad, escribe a [email protected] con suficiente detalle para reproducirlo. Por favor no lo divulgues en público hasta que hayamos tenido una oportunidad razonable de corregirlo.

No ofrecemos un bug bounty de pago a menos que publiquemos uno. No intentes acceder a cuentas, datos o eventos de otras personas como prueba.