Borrador: preparado para revisión, aún no revisado por un abogado

Este es un borrador de trabajo redactado por el equipo de UniExamer para describir lo que la aplicación hace realmente. No lo ha revisado ni aprobado un abogado, no constituye asesoramiento jurídico y no es un contrato. Las cuestiones abiertas que no podemos resolver por nuestra cuenta se enumeran por completo al final de la página en lugar de rellenarse con texto genérico.

Este aviso se publica en inglés, italiano, turco, español y polaco. Si las versiones lingüísticas difieren, prevalece la versión en inglés.

Sobre UniExamer

Aviso de privacidad

Qué guarda esta aplicación, por qué lo guarda y qué no recoge nunca, de forma deliberada.

En resumen

Puedes usar UniExamer sin darnos nada: practicar sin cuenta crea un registro de invitado que no contiene ningún dato personal. Si creas una cuenta, guardamos tu dirección de correo electrónico, un hash con sal de tu contraseña, los ajustes de estudio que configures y tu historial de práctica. Usamos dos cookies propias: una solo mantiene tu sesión iniciada y la otra solo recuerda el idioma que elegiste (Stripe añade sus propias cookies antifraude únicamente donde introduces una tarjeta). No hay publicidad ni analítica de terceros. Si compras un plan, Stripe cobra el pago en sus propios campos seguros para la tarjeta y nosotros solo guardamos qué planes tienes. Puedes exportar o eliminar tus datos desde la página de tu cuenta.

Redactado por UniExamer ·

1. Qué guardamos

Una cookie de sesión
Una sola cookie, llamada examer_session. Contiene un token aleatorio, se configura como HttpOnly y SameSite=Lax, se marca como Secure en producción y dura 30 días para una cuenta o 7 días para una sesión de invitado. El servidor solo guarda un hash SHA-256 del token, así que la tabla de sesiones no puede usarse para suplantar a nadie.
Una cookie de idioma
Una sola cookie, llamada NEXT_LOCALE. Se establece cuando abres una página en un idioma o eliges uno en el menú de idiomas, y solo contiene el código de ese idioma (por ejemplo, “it”), para que un enlace sin idioma se abra en el último que usaste. Dura hasta un año y se configura como SameSite=Lax. Es una cookie funcional: no está vinculada a tu cuenta, no se guarda nada sobre ella en nuestro servidor y no se usa para seguimiento, publicidad ni medición.
Una cuenta de invitado, si nunca te registras
Practicar sin cuenta crea una fila de usuario real para que tu historial se conserve y puedas reclamarlo más adelante. No contiene correo electrónico, contraseña ni nombre: nada que identifique a una persona.
Tu dirección de correo electrónico y tu contraseña, si creas una cuenta
La dirección de correo se guarda tal como la escribiste, en minúsculas. La contraseña nunca se guarda: conservamos un hash scrypt con sal y comparamos con él. También anotamos cuándo confirmaste la dirección con un código, si lo hiciste.
Códigos de un solo uso por correo electrónico, si los pides
Cuando pides un código de inicio de sesión o un restablecimiento de contraseña, o confirmas tu dirección, guardamos para qué es el código, la dirección a la que se envió, cuándo se envió y cuándo caduca, cuántos intentos fallidos se hicieron y si se usó. El código en sí nunca se guarda: solo un hash con clave. Un código funciona una sola vez y caduca a los 10 minutos. Pedir uno nuevo elimina el anterior, y los códigos caducados hace más de un día se eliminan la siguiente vez que alguien pide un código.
Perfil y ajustes de estudio opcionales
Un nombre visible, un examen objetivo, una fecha objetivo, un objetivo semanal de minutos de estudio y una indicación, declarada por ti, de que tienes menos de 16 años. No pedimos fecha de nacimiento, centro de estudios, país ni número de teléfono.
Tu historial de práctica
Los intentos que empiezas, las respuestas que das, las preguntas que marcas, cuánto tiempo te llevó cada pregunta y el resultado calculado de cada intento.
Los avisos sobre preguntas que nos envías
La pregunta de la que informaste, el motivo que elegiste, lo que escribiste en el campo de detalles y tu id de usuario si tenías la sesión iniciada al enviarlo.
Solicitudes al tutor de IA (solo si lo usas)
Cuando pulsas un botón para pedir al tutor de IA opcional una pista, una explicación más detallada o una guía posterior al test, registramos que lo pediste, cuándo y si funcionó, para poder aplicar el límite diario. Las guías posteriores al test se guardan en tu cuenta para que puedas volver a verlas; las pistas y explicaciones tratan sobre una pregunta y no sobre ti, y se guardan sin tu id.
Facturación (solo si compras un plan)
Cuando compras un plan, creamos un cliente para ti en Stripe, nuestro proveedor de pagos, con tu dirección de correo electrónico, tu nombre visible si lo has configurado y el id de tu cuenta, y guardamos los id de cliente y de suscripción de Stripe, cada plan y el examen que cubre, su estado, su fecha de renovación y el momento en que pediste acceso inmediato y aceptaste el fin del derecho de desistimiento. Los datos de tu tarjeta se escriben en campos proporcionados por Stripe en nuestras páginas de pago y de cuenta y van directamente a Stripe; nunca llegan a nuestros servidores. En la página de tu cuenta mostramos la marca de la tarjeta y los cuatro últimos dígitos, obtenidos de Stripe.
Contadores de límite de solicitudes
Para evitar abusos, contamos las solicitudes de cada usuario en intervalos fijos. La clave del contador es un hash SHA-256 de un identificador, así que nunca se escribe una dirección IP sin cifrar en la base de datos.
Totales diarios (sin datos personales)
Para saber si nuestras páginas de exámenes son útiles, guardamos simples totales diarios de unos pocos eventos: visitas a las páginas de exámenes y a la página de planes, pagos iniciados y planes comprados, cada uno con el examen correspondiente y, para las visitas, una procedencia aproximada (buscador, asistente de IA, este sitio, otro sitio o ninguna). Cada total es solo un número por día. No se registra ningún id de cuenta, cookie, dirección IP, dato del navegador ni la dirección de procedencia completa, así que ningún total puede vincularse contigo. Si empezaste o terminaste un test gratuito forma parte de tu historial de práctica, descrito más arriba.

2. Lo que no hacemos

  • Sin publicidad y sin píxeles publicitarios o de seguimiento de ningún tipo.
  • Sin analítica de terceros. No hay Google Analytics, ni SDK de analítica de producto, ni grabación de sesiones.
  • Sin datos de tarjetas. Los números de tarjeta se escriben en los campos seguros de Stripe en nuestra página de pago, así que van a Stripe y nosotros nunca los guardamos ni los vemos.
  • Sin más cookies que la cookie de sesión y la cookie de idioma, con una excepción: cuando introduces una tarjeta (en el pago, o al actualizar tu tarjeta en la página de la cuenta), el script de pago de Stripe establece sus propias cookies antifraude (__stripe_mid y __stripe_sid). No se guarda nada en tu dispositivo con fines de publicidad, medición o personalización; los totales diarios descritos arriba se cuentan en nuestro servidor y no identifican a nadie. El almacenamiento propio del navegador guarda dos notas de trabajo que nunca salen de él: las respuestas que aún no han llegado a nuestro servidor y si este navegador tiene una sesión iniciada (como invitado o con una cuenta), para que las páginas que servimos como archivos ya preparados puedan mostrarte tu propio menú. Cerrar sesión borra ambas.
  • Sin venta, alquiler ni cesión de datos personales a terceros para sus propios fines.
  • Sin IA a menos que la pidas. El tutor de IA opcional no envía nada hasta que pulsas uno de sus botones, y nunca es necesario para practicar: cada pregunta tiene su propia explicación revisada.
  • Sin marketing por correo electrónico. Guardamos tu dirección para que puedas iniciar sesión, no para enviarte campañas. Los únicos correos que enviamos son los códigos descritos arriba, en texto sin formato, así que no llevan ningún píxel de seguimiento.

3. Por qué lo guardamos

  • Para mantener tu sesión iniciada. Esa es la única función de la cookie de sesión.
  • Para mostrarte el sitio en tu idioma. Esa es la única función de la cookie de idioma.
  • Para devolverte tu historial de práctica. Los resultados, el desglose por temas y la función “no me vuelvas a mostrar esta pregunta durante un mes” necesitan que exista el historial.
  • Para corregir preguntas incorrectas. Un aviso indica a nuestros editores qué pregunta y qué versión deben revisar.
  • Para responder a una solicitud que hiciste al tutor de IA. Solo cuando pulsas el botón, y solo con el contenido de la pregunta y los datos de rendimiento descritos en las cuestiones abiertas de abajo.
  • Para enviarte los códigos que pides. Un código de inicio de sesión, un código para restablecer la contraseña o el código que confirma tu dirección al crear una cuenta.
  • Para evitar abusos. Los intentos de inicio de sesión, los registros, la creación de invitados, el inicio de intentos, el guardado de respuestas, los códigos por correo y los avisos sobre preguntas tienen límite de solicitudes.

No te elaboramos un perfil, no creamos audiencias publicitarias y no usamos tu historial de práctica para nada que no sea mostrártelo y seleccionar preguntas que no hayas visto recientemente.

4. Cómo se protege

  • Las contraseñas se cifran con scrypt y una sal distinta para cada contraseña. Una base de datos filtrada no entrega las contraseñas.
  • Los tokens de sesión solo se guardan como hashes SHA-256, así que una base de datos filtrada tampoco entrega sesiones activas.
  • Los códigos por correo solo se guardan como hashes con una clave secreta que no está en la base de datos. Cada uno funciona una sola vez, caduca a los 10 minutos y deja de funcionar tras cinco intentos fallidos.
  • Cada página privada y cada ruta privada de la API determinan en el servidor quién eres y filtran los datos por tu propio id de usuario. Nunca se confía en un id que aparezca en una URL para identificarte.
  • Las solicitudes que modifican datos se comprueban con el origen del propio sitio, además de la configuración SameSite de la cookie.
  • Las claves de límite de solicitudes se guardan como hash, así que no se almacenan direcciones IP sin cifrar.

5. Lo que puedes hacer

  • Exportar. Descarga todo lo asociado a tu cuenta desde la página de tu cuenta.
  • Eliminar. Elimina tu cuenta desde el mismo sitio. Consulta abajo la cuestión abierta sobre qué debería implicar la eliminación internamente.
  • Cerrar sesión en todas partes. Cerrar sesión destruye la sesión; restablecer la contraseña destruye todas las sesiones de la cuenta.
  • Seguir como invitado. Si nunca te registras, no hay nada personal que exportar o eliminar: borrar la cookie de sesión pone fin a la sesión.
  • Cambiar o borrar tu idioma. Elige otro idioma en el menú de idiomas en cualquier momento, o borra la cookie de idioma en tu navegador; entonces el sitio se mostrará en inglés o en el idioma que pida tu navegador.

Ir a la página de tu cuenta →

Cuestiones abiertas para la revisión jurídica

Son los puntos que este borrador no puede resolver por sí solo. Se enumeran en lugar de suponerse, porque una respuesta con apariencia de seguridad sería peor que una laguna reconocida.

  1. El responsable del tratamiento: qué entidad jurídica gestiona este servicio, en qué jurisdicción y cuál debería ser la dirección de contacto para las solicitudes de privacidad. Nada de lo que sigue puede cerrarse hasta que esto se resuelva.
  2. La base jurídica de cada finalidad del tratamiento según el RGPD (lo más probable, la ejecución de un contrato para la cuenta y el historial de práctica, y el interés legítimo para el límite de solicitudes y la prevención de abusos) y si ese análisis resiste la revisión.
  3. Los plazos de conservación. Hoy no caduca nada salvo las sesiones (30 días, o 7 para un invitado), los intervalos de límite de solicitudes (se purgan a las 24 horas), los códigos por correo (descritos arriba) y la cookie de idioma (un año, solo en tu navegador). Cuánto tiempo deben conservarse una cuenta de invitado inactiva, un historial de práctica y un aviso sobre una pregunta ya resuelto requiere una decisión y después una implementación.
  4. Si la eliminación debe ser definitiva o la eliminación lógica implementada actualmente. Hoy la eliminación marca la cuenta como eliminada, de modo que deja de reconocerse y de aparecer en cualquier parte; qué ocurre con las filas de intentos subyacentes, y al cabo de cuánto tiempo, es una decisión pendiente.
  5. Si los usuarios menores de 16 años necesitan un consentimiento parental verificable en cada jurisdicción en la que operamos, y si una indicación autodeclarada es defendible en absoluto. La indicación de edad existe en el código y es autodeclarada; no la verificamos y actualmente no pedimos consentimiento.
  6. Dónde se alojan los datos, si se produce alguna transferencia internacional y qué deben indicar el mecanismo de transferencia y la lista de subencargados. La aplicación usa una sola base de datos. Intervienen tres servicios de terceros: el tutor de IA opcional, descrito en el punto siguiente; el proveedor de pagos, Stripe, descrito después; y el proveedor de correo electrónico, Brevo, que entrega los códigos de un solo uso. Por cada correo con un código, Brevo recibe la dirección del destinatario, el asunto y el mensaje en texto sin formato, que contiene el código. Lo que queda por resolver respecto a Brevo: su condición de encargado del tratamiento y las condiciones de tratamiento de datos de la cuenta, su conservación del contenido de los mensajes y de los registros de entrega, y dónde trata los datos.
  7. El tutor de IA. Cuando un estudiante pulsa un botón del tutor, el servidor envía al proveedor del modelo (Anthropic), a través de su API, la pregunta, sus opciones, nuestra explicación revisada, la opción que eligió el estudiante y, en el caso de una guía posterior al test, los resultados agregados de la sesión. No se envía ningún nombre, dirección de correo, id de cuenta ni texto libre escrito por el estudiante. Lo que queda por resolver: la condición del proveedor como encargado del tratamiento y las condiciones de tratamiento de datos con las que se emite la clave de la API; la conservación y el uso del contenido de las solicitudes por parte del proveedor según esas condiciones, que no hemos verificado y por eso no describimos aquí; el mecanismo de transferencia internacional, si el proveedor trata los datos fuera de la jurisdicción del estudiante; si los datos de rendimiento son datos personales una vez separados de la cuenta; y si los estudiantes menores de 16 años pueden usar el tutor sin consentimiento parental. Mientras esto no se resuelva, un operador puede dejar el tutor desactivado, y el sitio funciona por completo sin él.
  8. Los pagos. Cuando un estudiante compra un plan, el servidor crea un cliente de Stripe con la dirección de correo de la cuenta, el nombre visible (si lo hay) y el id de la cuenta, y Stripe recoge la tarjeta en sus propios campos seguros integrados en nuestra página de pago (Stripe.js se carga desde js.stripe.com solo en las páginas de pago y de cuenta). Lo que queda por resolver: si las cookies antifraude de Stripe, establecidas solo en las páginas donde se introduce una tarjeta, se consideran estrictamente necesarias (nuestra opinión) o requieren consentimiento; si Stripe actúa como nuestro encargado del tratamiento o como responsable independiente de los datos de pago; cuánto tiempo deben conservarse los registros de facturación por motivos fiscales y contables, lo que puede prevalecer sobre una solicitud de eliminación de esos registros; el mecanismo de transferencia internacional; y si los menores pueden comprar un plan.
  9. Si la cookie de sesión se considera estrictamente necesaria en todas las jurisdicciones en las que operamos (nuestra opinión es que sí, y por eso no se muestra ningún banner de consentimiento) y si la cookie de idioma, que solo recuerda el idioma que elegiste, está exenta de consentimiento como preferencia de la interfaz durante su vida de un año (también es nuestra opinión); y la confirmación de que nada más en el sitio activaría requisitos de consentimiento.
  10. El procedimiento y los plazos para atender las solicitudes de acceso, rectificación, portabilidad, oposición y supresión, y quién es responsable de cumplirlos.
  11. La notificación de brechas de seguridad: el umbral, el procedimiento interno y el calendario de notificación.
  12. La redacción del aviso sobre marcas y ausencia de afiliación, que aparece en todas las páginas y está redactado por nosotros y no por un abogado.