¿Qué son las cookies? Cómo las webs te recuerdan
Una cookie es un pequeño texto que una web pide a tu navegador que guarde y que después envía de vuelta en cada visita posterior a ese sitio. Así es como una web te «recuerda»: que has iniciado sesión, qué hay en tu carrito, qué idioma elegiste. Las cookies son solo datos, no programas, pero como pueden identificarte importan tanto para la seguridad como para la privacidad.
Por qué importa cuando creas con IA
Las cookies están detrás de varias funciones que le pedirás a un creador con IA, a menudo sin que la palabra «cookie» llegue a aparecer:
- Inicio de sesión. En la mayoría de las apps web, «mantener la sesión iniciada» significa una cookie de sesión. Cómo está configurada esa cookie determina lo fácil que es robarla.
- Carritos y preferencias. Una cesta que sobrevive a una recarga de página suele depender de una cookie o del almacenamiento del navegador.
- Analítica y publicidad. Añadir Google Analytics, el píxel de Meta o un widget de chat suele añadir cookies de otras empresas.
- Avisos legales. En muchos lugares, algunas cookies requieren el consentimiento del visitante antes de usarse, de ahí vienen los avisos de cookies.
Si sabes qué cookies establece tu app y por qué, puedes tomar mejores decisiones sobre la configuración de seguridad, el consentimiento y tu política de privacidad.
Una analogía cotidiana
Piensa en el ticket del guardarropa. Entregas tu abrigo y recibes una ficha numerada. La ficha no contiene tu abrigo, solo un número. Cada vez que vuelves al mostrador enseñas la ficha, y el empleado sabe qué abrigo es el tuyo.
Una cookie de sesión funciona igual. Cuando inicias sesión, el servidor guarda tus datos en su lado y da a tu navegador una ficha, un ID aleatorio largo. Tu navegador muestra esa ficha en cada petición, y el servidor busca quién eres. Quien copie la ficha puede recoger el abrigo, por eso las cookies de inicio de sesión hay que protegerlas.
Cómo funciona realmente una cookie
- Visitas una web. La respuesta del servidor incluye una cabecera como
Set-Cookie: session_id=8f3k...; HttpOnly; Secure; SameSite=Lax. - Tu navegador la guarda, asociada al dominio de ese sitio.
- En cada petición posterior al mismo sitio, el navegador añade automáticamente
Cookie: session_id=8f3k.... - El servidor la lee y sabe que eres tú.
El JavaScript de la página también puede crear cookies, pero las más importantes —las sesiones de inicio de sesión— deben establecerlas el servidor y ocultarse al JavaScript.
Tipos de cookies
| Tipo | Qué significa | Ejemplo |
|---|---|---|
| Cookie de sesión | Sin fecha de caducidad; se borra al cerrar el navegador | Un paso breve de la compra |
| Cookie persistente | Tiene fecha de caducidad (Expires o Max-Age) y sobrevive a los reinicios | «Recordarme durante 30 días» |
| Propia | Establecida por el sitio que aparece en la barra de direcciones | Tu inicio de sesión en ese sitio |
| De terceros | Establecida por otro dominio incrustado en la página | Un identificador de seguimiento de una red publicitaria |
| Estrictamente necesaria | Necesaria para un servicio que el usuario ha pedido | Sesión de inicio de sesión, carrito de compra |
| No esencial | Útil para el dueño del sitio | Analítica, publicidad, pruebas A/B |
Los navegadores han restringido cada vez más las cookies de terceros porque se usan para seguir a las personas entre webs. Varios navegadores importantes bloquean ya muchas de ellas por defecto, y los detalles cambian constantemente, así que no construyas nada importante sobre cookies de terceros.
Un ejemplo práctico: una pequeña tienda online
Supón que has creado una tienda que vende velas artesanales. Estas son las cookies que establecería una versión sensata, y por qué.
session — se establece cuando el dueño o un cliente inicia sesión. Solo contiene un ID aleatorio; el servidor guarda los datos reales de la sesión. Configuración: HttpOnly (los scripts de la página no pueden leerla), Secure (solo se envía por HTTPS), SameSite=Lax (no se envía en la mayoría de las peticiones iniciadas por otros sitios). Estrictamente necesaria.
cart_id — permite que un visitante que no ha iniciado sesión conserve su cesta. Apunta a un carrito guardado en la base de datos. Estrictamente necesaria, porque el visitante ha pedido añadir cosas a un carrito.
theme — recuerda el modo oscuro. Podría ser una cookie, pero nunca necesita llegar al servidor, así que localStorage del navegador es más sencillo.
Cookies de analítica — se añaden si instalas una herramienta de analítica. Son no esenciales. En la UE y el Reino Unido, en general requieren consentimiento antes de establecerse, así que el script de analítica debe esperar a que el visitante pulse «Aceptar».
Fíjate en lo que la tienda no guarda en cookies: el nombre, la dirección o los datos de la tarjeta del cliente. Las cookies viajan con cada petición y viven en el dispositivo del usuario, así que deben contener identificadores, no datos personales.
Términos habituales explicados
| Término | Qué significa |
|---|---|
| Cookie | Un par nombre-valor que el navegador guarda y envía de vuelta al sitio. |
Set-Cookie | La cabecera de respuesta que usa un servidor para crear o actualizar una cookie. |
| Sesión | El registro que hace el servidor de un usuario que ha iniciado sesión, vinculado a un ID de cookie. |
HttpOnly | Impide que el JavaScript de la página lea la cookie, lo que limita el daño de scripts inyectados. |
Secure | La cookie solo se envía por conexiones HTTPS cifradas. |
SameSite | Controla si la cookie se envía en peticiones desde otros sitios (Strict, Lax o None). |
Expires / Max-Age | Cuándo debe borrarse la cookie. |
| Domain / Path | Qué direcciones del sitio reciben la cookie. |
| localStorage | Almacenamiento del navegador que puede leer el código de la página, pero que no se envía automáticamente al servidor. |
| XSS | Cross-site scripting: un script de un atacante ejecutándose en tu página, que puede intentar robar datos. |
| CSRF | Cross-site request forgery: otro sitio que engaña al navegador para enviar una petición con tus cookies. |
| Consentimiento de cookies | Pedir permiso a los visitantes antes de establecer cookies no esenciales. |
Errores frecuentes e ideas equivocadas
- «Las cookies son virus.» Son texto plano. No pueden ejecutar código en tu ordenador.
- Guardar datos sensibles en cookies. Guarda un ID aleatorio y mantén los detalles en el servidor.
- Tokens de inicio de sesión en localStorage. Cualquier script que se ejecute en la página puede leer localStorage, incluido uno inyectado. Una cookie
HttpOnlyno puede ser leída en absoluto por los scripts de la página. - Falta de
SecureyHttpOnly. Estas dos marcas son baratas y cierran agujeros habituales. - Dar por hecho que un aviso lo cubre todo. Un aviso que carga la analítica antes de que nadie pulse «Aceptar» no cumple su función.
- Olvidar el cierre de sesión. Cerrar sesión debe borrar la cookie y terminar la sesión en el servidor, para que una cookie copiada deje de funcionar.
- «Si no uso cookies, no se aplican las normas de privacidad.» Normas como el RGPD cubren los datos personales estén donde estén: almacenamiento local, huellas del dispositivo y registros del servidor incluidos.
Qué pedir a tu creador con IA
- «Enumera cada cookie que establece la app, para qué sirve, cuánto dura y si es estrictamente necesaria.»
- «Usa una cookie
HttpOnly,Secure,SameSite=Laxpara la sesión de inicio de sesión. No pongas tokens de autenticación en localStorage.» - «Guarda solo un ID de sesión aleatorio en la cookie; guarda los datos de la sesión en el servidor.»
- «Al cerrar sesión, borra la cookie e invalida la sesión en el servidor.»
- «No cargues scripts de analítica o marketing hasta que el visitante los acepte, y recuerda su elección.»
- «Añade a la política de privacidad una sección sencilla sobre cookies que coincida con la lista anterior.»
Para la parte del consentimiento, consulta cómo añadir el consentimiento de cookies. Para ver cómo encajan las cookies en los inicios de sesión, lee qué es la autenticación.
Cookies en Mythex
Mythex no ofrece un inicio de sesión integrado para los usuarios de tu app, así que las cookies que establece tu app proceden de su propio código y de las herramientas que le añadas; por ejemplo, una cookie de sesión del método de autenticación que elijas. Pide al agente en el chat que las enumere, que endurezca su configuración o que añada un aviso de consentimiento, y revisa el resultado en la vista previa en vivo antes de publicar. La receta de la documentación sobre cómo añadir inicio de sesión a tu app es un buen punto de partida, y la seguridad en las apps que creas explica cómo mantener las claves y los secretos fuera del navegador.
Preguntas
¿Qué es una cookie en una web?
Una cookie es un pequeño texto que una web pide a tu navegador que guarde. El navegador lo envía de vuelta en cada petición posterior a esa web, lo que permite al sitio recordar cosas como si has iniciado sesión o qué hay en tu carrito.
¿Son peligrosas las cookies?
Las cookies son datos, no programas, así que no pueden ejecutar código ni infectar un ordenador. Las preocupaciones son la privacidad, cuando las cookies de terceros te siguen entre sitios, y la seguridad, cuando una cookie de inicio de sesión se roba y se usa para hacerse pasar por ti.
¿Cuál es la diferencia entre cookies propias y de terceros?
Una cookie propia la establece el sitio que aparece en la barra de direcciones, como una cookie de inicio de sesión. Una cookie de terceros la establece otro dominio incrustado en la página, como una red publicitaria, y a menudo se usa para seguirte por muchos sitios.
¿Necesito un aviso de cookies?
Depende de dónde estén tus usuarios y de qué cookies uses. En la UE y el Reino Unido, las cookies no esenciales, como las de analítica o publicidad, normalmente necesitan consentimiento previo, mientras que las estrictamente necesarias para el servicio, como una sesión de inicio de sesión, normalmente no. Revisa las normas que te afectan.
¿Cuál es la diferencia entre cookies y localStorage?
Ambos guardan datos en el navegador. Las cookies se envían automáticamente al servidor en cada petición, lo que las hace adecuadas para los inicios de sesión. localStorage se queda en el navegador y solo lo lee el código propio de la página, lo que encaja con preferencias como un tema visual.