Formato de cookies
WebTodo se ejecuta en tu navegador: no se sube nada
⚠️ No usa la red: las cookies las obtienes tú (Application → Cookies en las herramientas de desarrollo, o las líneas `Set-Cookie` que devuelve `curl -I`). ⚠️ Y un aviso: no pegues cookies con una sesión real en ninguna herramienta en línea, porque eso equivale a entregar la sesión. Esta herramienta se ejecuta por completo en local, pero conviene adquirir el hábito. Descompón en una tabla legible la línea `Cookie` o `Set-Cookie`: basta con copiarla de las herramientas de desarrollo del navegador y pegarla. ⚠️ Estas dos cabeceras se parecen pero significan cosas totalmente distintas. La `Cookie` de una petición es una lista plana de pares nombre-valor: ``` a=1; b=2; session=abc ``` Eso son tres cookies. En cambio cada línea `Set-Cookie` de una respuesta describe una sola cookie, con sus atributos tras los puntos y coma: ``` session=abc; Path=/; HttpOnly; Secure ``` El mismo `a=1; b=2` aquí significa «una cookie llamada a, con un atributo llamado b». Equivocarse da una salida completamente distinta, y ninguno de los dos errores avisa: por eso aquí se detecta automáticamente, y si el resultado no te convence puedes forzar el modo. La regla de detección es «¿aparece algún nombre de atributo de cookie conocido (Path / Domain / Expires / Max-Age / Secure / HttpOnly / SameSite)?», no «¿hay algo tras el primer punto y coma?», porque esto último leería como Set-Cookie la cabecera de petición `a=1; b=2`, que es de lo más común. De paso se descodifican escapes como `%20`, y se señala qué atributo de seguridad le falta a cada cookie: sin `HttpOnly` los scripts de la página pueden leerla (un solo XSS y la sesión está perdida), sin `Secure` también se envía por HTTP en claro, y sin `SameSite` viaja en las peticiones entre sitios (el caldo de cultivo del CSRF).
Funciones
- Analiza tanto la cabecera `Cookie` de petición como la `Set-Cookie` de respuesta, con detección automática y anulación manual
- Los atributos de `Set-Cookie` van como nota al margen: nunca se cuelan en el «valor» que copias
- `Expires` y `Max-Age` se convierten en fechas concretas, y las caducadas se marcan
- Señala cuál de `HttpOnly` / `Secure` / `SameSite` le falta a cada cookie
- ⚠️ Entiende `Partitioned` (CHIPS), y advierte aparte cuando falta `Secure`: esa combinación la rechaza el navegador directamente, que no es lo mismo que un «funciona pero es más débil»
- Descodifica opcionalmente los escapes de porcentaje de los valores
- Los puntos y coma dentro de un valor entrecomillado no se tratan como separadores
- Todo se analiza en tu dispositivo: las cookies nunca salen de él
Cómo se usa
- Pega la línea `Cookie` o `Set-Cookie` a la izquierda (vale más de una)
- Fuerza el modo de análisis si la detección no acierta
- El resultado aparece al instante; cada fila se copia por separado
Preguntas frecuentes
- ¿Por qué mi `a=1; b=2` se ha analizado como dos cookies?
- Porque en una cabecera Cookie de petición de verdad son dos cookies: esa cabecera separa varios pares nombre-valor independientes con puntos y coma, que es su forma más común. Solo en una cabecera Set-Cookie de respuesta significa algo un atributo lo que va tras un punto y coma. Las dos se distinguen por «¿aparece algún nombre de atributo conocido?»: `a=1; b=2` no contiene ninguno de `Path`, `HttpOnly` y compañía, así que se lee como petición. Añade un atributo y cambia: `a=1; b=2; Secure` se analiza como una cookie llamada `a` con `b=2` como atributo suyo. Si la detección automática no encaja con tu caso, fija el modo de análisis a mano.
- ¿Cuánto importa el aviso «sin HttpOnly»?
- Para una cookie de sesión, muchísimo. `HttpOnly` hace que la cookie sea invisible para JavaScript: en cuanto una página tiene un XSS (aunque solo sea un script de terceros envenenado), una cookie sin `HttpOnly` se puede leer directamente con `document.cookie` y enviarla a un atacante, y una sesión robada es una cuenta robada. `Secure` y `SameSite` también importan, en situaciones distintas: `Secure` evita que un intermediario intercepte la transmisión en claro, y `SameSite` evita que las peticiones entre sitios lleven la cookie automáticamente (eso es el CSRF). Poner las tres casi siempre es lo correcto.
- ¿Qué diferencia hay entre `Max-Age` y `Expires`?
- `Max-Age` es «dentro de tantos segundos»; `Expires` es un instante absoluto. Cuando están los dos, gana `Max-Age` (lo dice la RFC 6265), porque los instantes absolutos sufren relojes desajustados y husos mal puestos, mientras que los segundos relativos no. Otros dos casos que conviene conocer: un valor cero o negativo significa borrar ya esta cookie (así funciona el cierre de sesión), y no poner ninguno la convierte en una cookie de sesión que desaparece al cerrar el navegador, que es la razón de que algunos sitios te obliguen a iniciar sesión otra vez.
Herramientas relacionadas
Formato de cabeceras HTTP
WebConvierte cabeceras HTTP capturadas o pegadas de curl en una tabla, traduce tamaños y juegos de caracteres, y señala qué cabeceras de seguridad faltan.
Códigos de estado HTTP
WebConsulta un código de estado HTTP: significado, clase 1xx–5xx, usos típicos y trampas habituales. También busca por palabra clave. Todo local.
Base64
CifradoConvierte texto a Base64 y al revés, con UTF-8 correcto para acentos, chino y emoji. Todo se ejecuta en tu navegador: no se sube nada.
Codificar URL
CifradoEscapa texto a la forma %XX y lo devuelve, tratando una URL completa y un valor de parámetro como trabajos distintos. Todo en tu navegador.
Analizador de URL
WebDescompone una URL en esquema, host, puerto, ruta, parámetros y ancla, con cada parámetro en crudo y decodificado. Todo en tu navegador.
Analizador de UA
WebAnaliza un User-Agent: navegador, versión, sistema, tipo de dispositivo y motor, con las reglas que coinciden. Solo coincidencia de patrones.