Analitzador de Set-Cookie

Set-Cookie Parser

Enganxa capçaleres de resposta Set-Cookie de diverses línies per inspeccionar els atributs i assenyalar combinacions SameSite / Secure de risc.

Targetes d'Atributs de Cookie

2 Set-Cookie
#1sessionabc123
path/
httponly(indicador)
secure(indicador)
samesiteLax
No s'han trobat problemes evidents d'atributs
#2preview1
max-age600 (10m 0s)

setCookieParser.attr.maxAgeHint

samesiteNone
secure(indicador)
setCookieParser.warn.missingHttpOnlysetCookieParser.warn.missingPath

Vista Prèvia de JSON

[
  {
    "index": 0,
    "raw": "session=abc123; Path=/; HttpOnly; Secure; SameSite=Lax",
    "name": "session",
    "value": "abc123",
    "decodedValue": "abc123",
    "attributes": [
      {
        "key": "path",
        "value": "/"
      },
      {
        "key": "httponly",
        "value": null
      },
      {
        "key": "secure",
        "value": null
      },
      {
        "key": "samesite",
        "value": "Lax"
      }
    ],
    "attributeMap": {
      "path": "/",
      "httponly": true,
      "secure": true,
      "samesite": "Lax"
    },
    "warnings": []
  },
  {
    "index": 1,
    "raw": "preview=1; Max-Age=600; SameSite=None; Secure",
    "name": "preview",
    "value": "1",
    "decodedValue": "1",
    "attributes": [
      {
        "key": "max-age",
        "value": "600"
      },
      {
        "key": "samesite",
        "value": "None"
      },
      {
        "key": "secure",
        "value": null
      }
    ],
    "attributeMap": {
      "max-age": "600",
      "samesite": "None",
      "secure": true
    },
    "warnings": [
      "warn.missingHttpOnly",
      "warn.missingPath"
    ]
  }
]

Per què el navegador no accepta Cookies, sovint no és per un valor incorrecte, sinó per atributs Set-Cookie incorrectes.

Relacionats

Què és l'Analitzador de Set-Cookie?

L'Analitzador de Set-Cookie és una eina de depuració dedicada específicament al contingut de `Set-Cookie` en les capçaleres de resposta HTTP. El seu objectiu no és simplement separar una línia de text per punt i coma, sinó ajudar els desenvolupadors a jutjar: si la configuració d'aquesta Cookie del servidor és correcta, per què el navegador no l'ha acceptada, quines combinacions d'atributs presenten riscos de seguretat o compatibilitat, i si l'actual Set-Cookie és adequada per a escenaris cross-site, SSO, iframe, Cookies de tercers o sessions.

A diferència de la Cookie de la capçalera de sol·licitud, Set-Cookie és la "instrucció de configuració que el servidor envia al navegador". No només conté `name=value`, sinó que també porta atributs com SameSite, Secure, HttpOnly, Path, Domain, Expires, Max-Age, Partitioned, etc. Aquests camps determinen directament si el navegador l'escriurà, quan expirarà, en quins camins i dominis tindrà efecte, i si es podrà enviar en sol·licituds cross-site. Per tant, la causa arrel de molts problemes com "pèrdua de sessió", "el navegador no envia la Cookie", "no funciona en escenaris cross-domain" no és en el valor en si, sinó en la configuració dels atributs de Set-Cookie.

El valor de la pàgina actual rau a extreure estructuradament aquests atributs de la capçalera de resposta original i realitzar comprovacions estàtiques combinant les regles reals del navegador. Per exemple, si SameSite=None manca de Secure, si Partitioned va acompanyat de Secure, si el prefix __Host- estableix Domain incorrectament, si Max-Age no és vàlid o és igual a 0, si Expires manca de Max-Age, etc. El navegador normalment no mostra aquests problemes directament com errors de sintaxi, sinó que els rebutja silenciosament o es manifesten com "simplement no funciona", per tant la comprovació mitjançant eines és molt important.

Si només voleu saber quines Cookies s'envien actualment en la sol·licitud, no us heu de quedar en aquesta pàgina, sinó que hauríeu de consultar l'«Analitzador HTTP Cookie», que és més adequat per desglossar capçaleres de sol·licitud. La pàgina actual és més adequada per a escenaris de resolució de problemes de capçaleres de resposta com "per què el navegador no l'ha escrita", "aquesta configuració de Cookie del servidor té riscos ocults", "la combinació d'atributs cross-site i de seguretat és raonable".

Casos d'ús

  • Quan el navegador rebutja escriure una Cookie, localitzar ràpidament si el problema és en SameSite, Secure, HttpOnly o en la configuració de Path / Domain
  • En escenaris d'inici de sessió de tercers, SSO, incrustació d'iframe o sol·licituds cross-site, comprovar si SameSite=None va correctament acompanyat de Secure
  • Durant auditories de seguretat, comprovar massivament si les Cookies retornades per les interfícies manquen d'HttpOnly, de SameSite o presenten combinacions d'atributs d'alt risc
  • Verificar si les Cookies amb prefixos __Host- / __Secure- compleixen les restriccions fortes del navegador, evitant que siguin descartades silenciosament
  • Quan depureu esquemes de partició de tercers Partitioned Cookie / CHIPS, confirmar si Partitioned i Secure es declaren alhora
  • Comparar diferències en les capçaleres de resposta Set-Cookie entre entorns de desenvolupament, prova i producció, resolent anomalies de sessió després de canvis d'entorn

Com usar-ho

  1. Copieu el contingut de les capçaleres de resposta Set-Cookie (admet multilínia) des de DevTools del navegador, eines de captura de paquets o registres del servidor
  2. Enganxeu-lo a l'àrea d'entrada, l'eina eliminarà automàticament el prefix `Set-Cookie:` i analitzarà línia per línia
  3. Visualitzeu el nom, valor, valor descodificat URL, targetes d'atributs i etiquetes d'alerta de cada Cookie
  4. Copieu la capçalera original o visualitzeu la previsualització JSON, per enviar els resultats al backend, enganxar-los en Issue o escriure'ls en scripts de prova

Característiques

  • Anàlisi independent de múltiples Set-Cookie: cada línia es mostra en una targeta independent, visualitzant nom, valor original, valor descodificat URL i atributs per a cada una
  • Comprovació automàtica de 14 problemes habituals: cobreix riscos freqüents com SameSite, Secure, HttpOnly, Path, Domain, Max-Age, Expires, prefixos __Host- / __Secure- i Partitioned
  • Desglossament complet d'atributs: visualització estructurada per camps com SameSite, Secure, HttpOnly, Path, Domain, Expires, Max-Age, Partitioned
  • Conversió Max-Age llegible per humans: els segons es converteixen automàticament a minuts, hores i dies, reduint el càlcul manual
  • Entrada massiva multilínia: podeu enganxar directament el segment complet de capçaleres de resposta Set-Cookie copiat de DevTools o eines de captura de paquets
  • Còpia de capçalera original i previsualització JSON: convenient per reenviar al backend, i també per escriure documents, Issue, scripts i casos de prova
  • Processament local sense càrrega: Session, Token i Cookies de sessió sensibles s'analitzen dins del navegador, sense sortir de l'equip

Quan utilitzar l'Analitzador de Set-Cookie i quan utilitzar les altres dues pàgines?

Veure clar "què ha configurat el servidor" i "què s'ha enviat realment en la sol·licitud" són dues coses diferents, no les confongueu.

EinaEntrada adequadaMillor per aAvantatge principal
Analitzador de Set-Cookie (pàgina actual)Capçalera de resposta Set-CookieResoldre per què el navegador no accepta Cookies, per què no funciona cross-site, per què hi ha riscos en la configuració d'atributs de seguretatDesglossament complet d'atributs i comprovació automàtica de 14 configuracions freqüents
Analitzador HTTP CookieCapçalera de sol·licitud Cookie, document.cookieConfirmar quines Cookies s'han enviat realment en la sol·licitud, si els valors estan codificats per URL, si hi ha noms duplicatsMés centrat en el desglossament de parells nom-valor de capçaleres de sol·licitud i sortida estandarditzadaObrir Analitzador HTTP Cookie
Analitzador de CookieEscenaris de resolució mixta de cadenes Cookie i Set-CookieQuan encara no esteu segurs de l'origen de les dades, o voleu canviar ràpidament entre els modes Cookie / Set-Cookie en una sola pàginaMés com una entrada general de depuració de Cookie, i admet l'exportació de Netscape Cookie FileObrir Analitzador de Cookie

Best Practices

Primer determineu si el problema és en "l'establiment fallit" o en "no s'ha enviat en la sol·licitud"

Si el navegador no ha escrit la Cookie en absolut, consulteu primer la pàgina actual; si el navegador l'ha escrita, però no s'ha enviat en sol·licituds posteriors, haureu de consultar també l'Analitzador HTTP Cookie. Set-Cookie i la capçalera de sol·licitud Cookie són dues fases diferents.

En escenaris cross-site, reviseu primer la combinació de SameSite=None i Secure

El problema més comú en SSO, inici de sessió de tercers, incrustació d'iframe i sol·licituds cross-domain és SameSite=None sense Secure. Resoleu primer aquest grup de problemes, després reviseu la lògica del servidor i les polítiques del navegador.

Amb els prefixos __Host- / __Secure-, no només mireu el nom, comproveu que les restriccions siguin completes

Molts equips pensen que afegint `__Host-` o `__Secure-` al nom de la Cookie ja és més segur, però si no es compleixen les condicions associades com Secure, Path=/ o Domain, el navegador encara rebutjarà escriure-la.

Quan escriviu documents i reproduïu Issue, conserveu preferentment tant la capçalera original com el JSON

La capçalera original és adequada per verificar els valors retornats reals amb backend i operacions; el JSON és adequat per enganxar en Issue, casos de prova i scripts per processar posteriorment. Conservar tots dos és millor que només capturar una imatge de DevTools per a la reproducció i col·laboració.

Preguntes freqients

Quina diferència hi ha entre l'analitzador de Set-Cookie i l'analitzador de capçaleres Cookie?

L'analitzador de Set-Cookie s'adreça a les capçaleres de resposta del servidor, centrant-se en si el navegador acceptarà aquesta Cookie i si els atributs tenen problemes; l'analitzador de capçaleres Cookie s'adreça a les sol·licituds enviades pel navegador, centrant-se en quines Cookies s'han enviat en aquesta sol·licitud. Si esteu resolent problemes de configuració d'atributs com SameSite, HttpOnly, Secure, Path, Domain, Expires, Max-Age, hauríeu de utilitzar la pàgina actual preferentment.

Analitzador HTTP Cookie

Per què el navegador no escriu la Cookie tot i haver rebut la resposta?

Això és precisament el problema que l'eina actual resol millor. Les causes habituals inclouen SameSite=None sense Secure, Cookies Secure que s'intenten establir en pàgines HTTP, incompliment del prefix __Host-, Partitioned sense Secure, configuració de Path o Domain no raonable, Max-Age no vàlid o directament 0, i restriccions de polítiques de Cookies de tercers del navegador.

Quins riscos habituals de Set-Cookie comprova l'eina?

La pàgina actual detecta automàticament 14 tipus de problemes freqüents, incloent SameSite=None sense Secure, valor SameSite no vàlid, Partitioned sense Secure, manca d'HttpOnly, manca de Path, manca de SameSite, prefix __Host- sense Secure, Path no és /, o Domain mal configurat, prefix __Secure- sense Secure, Max-Age no vàlid, Max-Age=0, Domain que comença per punt, i Expires sense Max-Age, entre d'altres.

Per què SameSite=None ha d'anar acompanyat obligatòriament de Secure?

Els navegadors moderns requereixen que les Cookies que es poden enviar entre llocs, si declaren `SameSite=None`, hagin de portar `Secure` alhora, altrament el navegador normalment rebutjarà escriure-les directament. Aquest tipus de problema és molt comú en l'inici de sessió de tercers, SSO, incrustació d'iframe i depuració de sol·licituds cross-origin.

Per què els navegadors rebutgen les Cookies amb prefixos __Host- i __Secure-?

`__Host-` i `__Secure-` són prefixos de seguretat amb restriccions fortes. `__Host-` requereix obligatòriament Secure, Path=/ i no pot establir Domain; `__Secure-` requereix com a mínim Secure. Si es violen aquestes regles, el navegador ignorarà directament aquesta Cookie.

Com s'han d'interpretar Max-Age i Expires?

Max-Age és un nombre de segons relatius, normalment amb prioritat més alta que Expires; Expires és un punt de temps absolut, afectat pel rellotge del client. Molts costats de servidor només escriuen Expires sense Max-Age; tot i que funciona, durant la depuració és més fàcil provocar errors de judici per diferències de zona horària o hora del sistema.

Aquesta eina és adequada per resoldre problemes de Cookies cross-site i Cookies de tercers?

Sí. Tant si es tracta d'inici de sessió de tercers, SSO, incrustació d'iframe, interfícies cross-domain o escenaris CHIPS (Partitioned Cookie), aquesta eina us ajuda a veure ràpidament si la combinació de SameSite, Secure i Partitioned és raonable.

Els resultats de l'anàlisi admeten còpia o exportació?

Sí. Podeu copiar amb un sol clic la capçalera Set-Cookie original, o veure la previsualització JSON estructurada, i enganxar el nom, valor, atributs i resultats d'alerta de cada Cookie en Issue, documents, scripts de prova o registres de depuració conjunta.

S'enviaran al servidor les Session i Token que copieu?

No. L'anàlisi del contingut de Set-Cookie, la descodificació URL, el desglossament d'atributs i la comprovació d'alertes es fan tots localment al navegador, i les capçaleres de resposta sensibles no s'enviaran a cap servidor.

Glossari

Set-Cookie
Capçalera de resposta HTTP mitjançant la qual el servidor indica al navegador que emmagatzemi una Cookie. Una resposta pot contenir múltiples Set-Cookie, cadascuna corresponent normalment a una Cookie.
SameSite
Atribut que controla si les Cookies s'enviaran en sol·licituds cross-site. Els valors habituals són Strict, Lax, None; d'aquests, None normalment requereix establir Secure alhora.
HttpOnly
Quan s'estableix, JavaScript del frontend no pot llegir aquesta Cookie mitjançant document.cookie, utilitzat principalment per reduir el risc de robatori de sessions per XSS.
Secure
Quan s'estableix, el navegador només enviarà aquesta Cookie en connexions HTTPS (o el cas especial de localhost), evitant que Cookies sensibles s'exposin en HTTP en text clar.
Max-Age
Temps de vida relatiu de la Cookie, en segons. Normalment té prioritat més alta que Expires, es recomana establir-lo explícitament al costat del servidor.
Expires
Punt de temps d'expiració absolut de la Cookie, depèn de l'hora local del client. Quan s'utilitza sol, el cost de depuració sol ser més alt que amb Max-Age.
Path
Prefix de camí URL que limita on la Cookie té efecte. Si Path no coincideix, fins i tot si la Cookie s'ha escrit, no s'enviarà en sol·licituds posteriors.
Domain
Àmbit de domini que limita on la Cookie té efecte. Si no s'estableix, normalment només es limita a l'amfitrió actual; si s'estableix, pot afectar subdominis.
Partitioned (CHIPS)
Esquema d'emmagatzematge particionat de Cookies de tercers, utilitzat sovint com a alternativa després que els navegadors redueixin gradualment les Cookies de tercers. La implementació actual normalment requereix anar acompanyada de Secure.
Prefixos __Host- / __Secure-
Prefixos de nomenclatura de Cookies d'alta seguretat suportats pels navegadors, amb regles de restricció fortes. Quan es violen les regles, el navegador rebutjarà rebre la Cookie corresponent.

Taula de comparació ràpida de les tres estratègies SameSite

Quan resoleu problemes de Cookies cross-site, reviseu primer els límits de comportament de SameSite, i després comproveu si Secure falta.

Valor SameSiteNavegació de nivell superior cross-site (GET)Subrecursos cross-site (img/iframe/script)Formulari POST cross-siteXHR/fetch cross-siteRequereix Secure obligatòriament
StrictNo s'enviaNo s'enviaNo s'enviaNo s'enviaNo
Lax (per defecte)S'enviaNo s'enviaNo s'enviaNo s'enviaNo
NoneS'enviaS'enviaS'enviaS'enviaCal establir Secure obligatòriament

Taula de problemes freqüents en depuració Set-Cookie

Quan el navegador rebutja silenciosament les Cookies, reviseu primer les direccions següents, normalment és més ràpid que fixar-vos en el cos de la resposta.

SímptomaCausa probableComprovació prioritària
El navegador no escriu la Cookie en absolutSameSite=None sense Secure, prefixe incomplert o combinació d'atributs no vàlidaReviseu primer les etiquetes d'alerta i les targetes d'atributs de la pàgina actual
No funciona en escenaris cross-site / iframeSameSite massa estricte, Secure absent o restriccions de polítiques de tercersCentreu-vos en SameSite, Secure, Partitioned
La Cookie expira immediatament després d'escriure'sMax-Age=0, Max-Age il·legal, problemes amb el temps ExpiresReviseu primer Max-Age, després Expires
Cookie __Host- / __Secure- no funcionaNo es compleixen les restriccions de Secure, Path=/ o DomainVerifiqueu si les alertes de prefix coincideixen
Funciona en entorn de desenvolupament, però no en produccióDiferències en HTTPS, Domain, Path, SameSite o capçaleres de resposta del proxyCopieu la capçalera original i compareu les respostes Set-Cookie entre diferents entorns

Privacy & Security

L'anàlisi de capçaleres de resposta Set-Cookie, la descodificació URL, el desglossament d'atributs i la comprovació de 14 tipus d'alertes es fan tots localment al navegador. Les Session, Token i Cookies de sessió enganxades no s'enviaran a cap servidor.