Parser Set-Cookie

Set-Cookie Parser

Wklej wieloliniowe nagłówki odpowiedzi Set-Cookie, aby sprawdzić atrybuty i oznaczyć ryzykowne kombinacje SameSite / Secure.

Karty atrybutów plików Cookie

2 Set-Cookie
#1sessionabc123
path/
httponly(flaga)
secure(flaga)
samesiteLax
Nie znaleziono widocznych problemów z atrybutami
#2preview1
max-age600 (10m 0s)

setCookieParser.attr.maxAgeHint

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

Podgląd 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"
    ]
  }
]

Kiedy przeglądarka nie przyjmuje plików Cookie, często problem nie leży w wartości, ale w nieprawidłowych atrybutach Set-Cookie.

Powiązane Rekomendacje

Czym jest parser Set-Cookie?

Parser Set-Cookie to narzędzie debugujące specjalnie przeznaczone do analizy treści `Set-Cookie` w nagłówkach odpowiedzi HTTP. Jego celem nie jest proste podzielenie ciągu po średnikach, ale pomoc programistom w określeniu: czy konfiguracja tego pliku Cookie na serwerze jest poprawna, dlaczego przeglądarka go nie przyjęła, jakie kombinacje atrybutów stwarzają ryzyko bezpieczeństwa lub zgodności oraz czy bieżący Set-Cookie nadaje się do scenariuszy międzywitrynowych, SSO, iframe, plików Cookie stron trzecich lub sesji.

W przeciwieństwie do pliku Cookie w nagłówku żądania, Set-Cookie to „polecenie konfiguracji”, które serwer wysyła przeglądarce. Zawiera nie tylko `name=value`, ale również atrybuty SameSite, Secure, HttpOnly, Path, Domain, Expires, Max-Age, Partitioned — te pola bezpośrednio określają, czy przeglądarka zapisze plik Cookie, kiedy wygaśnie, dla jakich ścieżek i domen działa oraz czy można go wysyłać w żądaniach międzywitrynowych. Dlatego główne przyczyny wielu problemów „utrata sesji”, „przeglądarka nie wysyła pliku Cookie”, „nie działa w scenariuszu międzydomenowym” leżą nie w samej wartości, ale w konfiguracji atrybutów Set-Cookie.

Wartość bieżącej strony polega na strukturalnym wyodrębnieniu tych atrybutów z oryginalnego nagłówka odpowiedzi, a następnie wykonaniu statycznego sprawdzania zgodności z rzeczywistymi regułami przeglądarki. Na przykład, czy przy SameSite=None nie brakuje Secure, czy Partitioned łączy się z Secure, czy przy prefiksie __Host- nie błędnie ustawiono Domain, czy Max-Age jest nieprawidłowy lub równy 0, czy przy Expires nie brakuje Max-Age. Przeglądarka zazwyczaj nie pokazuje tych problemów jako błędów składniowych, ale po prostu cicho odrzuca plik Cookie lub demonstruje „nie działa”, dlatego sprawdzanie narzędziowe jest bardzo ważne.

Jeśli po prostu chcesz wiedzieć, jakie pliki Cookie są obecnie wysyłane w żądaniu, nie pozostań na tej stronie — przejdź do „Parsera HTTP Cookie”, który lepiej nadaje się do analizy nagłówków żądania. Bieżąca strona bardziej nadaje się do scenariuszy diagnozowania nagłówków odpowiedzi: „dlaczego przeglądarka nie zapisała pliku Cookie”, „czy istnieją ukryte problemy w konfiguracji tego pliku Cookie na serwerze”, „czy kombinacja atrybutów międzywitrynowych i atrybutów bezpieczeństwa jest poprawna”.

Przypadki użycia

  • Szybka lokalizacja problemów z konfiguracją SameSite, Secure, HttpOnly, Path/Domain, gdy przeglądarka odrzuca zapis pliku Cookie
  • Sprawdzanie poprawności połączenia SameSite=None z Secure w scenariuszach autoryzacji stron trzecich, SSO, osadzania w iframe lub żądań międzywitrynowych
  • Masowe sprawdzanie plików Cookie zwracanych przez interfejsy pod kątem braku HttpOnly, SameSite lub obecności wysokoryzykowych kombinacji atrybutów podczas audytu bezpieczeństwa
  • Sprawdzanie spełnienia ścisłych ograniczeń przeglądarki dla plików Cookie z prefiksami __Host-/__Secure-, aby uniknąć cichego odrzucania
  • Potwierdzanie jednoczesnego zadeklarowania Partitioned i Secure podczas debugowania mechanizmu partycjonowanych plików Cookie stron trzecich Partitioned Cookie / CHIPS
  • Porównywanie różnic nagłówków Set-Cookie między środowiskami deweloperskimi, testowymi i produkcyjnymi w celu diagnozowania anomalii sesji po przełączeniu środowiska

Jak Używać

  1. Skopiuj zawartość nagłówków odpowiedzi Set-Cookie (obsługiwane wieloliniowe wprowadzanie) z przeglądarkowych DevTools, sniffera lub logów serwera
  2. Wklej w obszar wprowadzania, narzędzie automatycznie usunie prefiks `Set-Cookie:` i wykona analizę wiersz po wierszu
  3. Przeglądaj nazwę, wartość, zdekodowaną wartość URL, karty atrybutów i etykiety ostrzegawcze każdego pliku Cookie
  4. Skopiuj oryginalne nagłówki lub wyświetl podgląd JSON, wyślij wyniki do backendu, wklej do Issue lub do skryptów testowych

Funkcje

  • Niezależna analiza wielu Set-Cookie: każdy wiersz w osobnej karcie, podgląd nazwy, oryginalnej wartości, zdekodowanej wartości URL oraz atrybutów
  • Automatyczne sprawdzanie 14 typowych problemów: obejmuje SameSite, Secure, HttpOnly, Path, Domain, Max-Age, Expires, prefiksy __Host-/__Secure- oraz Partitioned
  • Pełny rozkład atrybutów: strukturalne wyświetlanie pól SameSite, Secure, HttpOnly, Path, Domain, Expires, Max-Age, Partitioned
  • Czytelne dla człowieka przeliczanie Max-Age: sekundy automatycznie konwertowane na minuty, godziny i dni
  • Wieloliniowe wprowadzanie wsadowe: można wkleić cały blok nagłówków Set-Cookie z DevTools lub sniffera
  • Kopiowanie oryginalnych nagłówków i podgląd JSON: wygodne do wysyłania do backendu, używania w dokumentacji, Issue, skryptach i testach
  • Lokalne przetwarzanie bez wysyłania: poufne Session, Token i pliki Cookie sesji są analizowane w przeglądarce, nie opuszczają urządzenia

Kiedy używać parsera Set-Cookie, a kiedy dwóch innych stron?

Zrozumienie, „co skonfigurował serwer” i „co faktycznie jest wysyłane w żądaniu” — to dwie różne rzeczy, nie mieszaj ich podczas diagnozowania.

NarzędzieOdpowiednie wprowadzanieNajlepiej nadaje się doKluczowa zaleta
Parser Set-Cookie (bieżąca strona)Nagłówki odpowiedzi Set-CookieDiagnozowanie przyczyn, dla których przeglądarka nie przyjmuje pliku Cookie, dlaczego wysyłanie międzywitrynowe nie działa, dlaczego istnieją ryzyka w konfiguracji atrybutów bezpieczeństwaPełny rozkład atrybutów i automatyczne sprawdzanie 14 powszechnych problemów konfiguracji
Parser HTTP CookieNagłówek żądania Cookie, document.cookiePotwierdzanie, jakie pliki Cookie faktycznie są wysyłane w żądaniu, czy wartości są zakodowane sposobem URL, czy istnieją powtarzające się nazwyBardziej skupiony na rozkładzie par nazwa-wartość w nagłówku żądania i ustandaryzowanym wyjściuOtwórz parser HTTP Cookie
Parser CookieMieszane scenariusze z ciągami Cookie i Set-CookieGdy źródło danych jest jeszcze niejasne lub trzeba szybko przełączać się między trybami Cookie / Set-Cookie na jednej stronieWygląda jak główne wejście do debugowania plików Cookie, obsługuje eksport Netscape Cookie FileOtwórz parser Cookie

Best Practices

Najpierw określ, czy problem leży w „nieudanej instalacji” czy „nie wysłaniu w żądaniu”

Jeśli przeglądarka w ogóle nie zapisała pliku Cookie, zacznij od bieżącej strony; jeśli plik Cookie został już zapisany, ale nie jest wysyłany w kolejnych żądaniach, użyj parsera HTTP Cookie wspólnie. Set-Cookie i plik Cookie w nagłówku żądania to dwa różne etapy.

W scenariuszach międzywitrynowych najpierw sprawdzaj kombinację SameSite=None i Secure

Najczęstszy problem w SSO, autoryzacji stron trzecich, osadzaniu w iframe oraz żądaniach międzydomenowych — to SameSite=None bez Secure. Najpierw wyeliminuj ten problem, następnie sprawdzaj logikę serwerową i polityki przeglądarki.

Nie patrz tylko na nazwę z prefiksami __Host- / __Secure-, sprawdzaj kompletność ograniczeń

Wiele zespołów myśli, że dodanie prefiksu `__Host-` lub `__Secure-` do nazwy pliku Cookie już czyni go bezpieczniejszym, ale jeśli towarzyszące warunki Secure, Path=/, Domain nie zostaną spełnione, przeglądarka i tak odrzuci zapis.

Podczas pisania dokumentacji i odtwarzania Issue zachowuj zarówno oryginalne nagłówki, jak i JSON

Oryginalne nagłówki nadają się do sprawdzania rzeczywistych wartości zwracanych przez backend i DevOps; JSON nadaje się do wklejania do Issue, przypadków testowych i skryptów do dalszego przetwarzania. Zachowanie obu materiałów jest lepsze niż tylko zrzut ekranu z DevTools do odtwarzania i współpracy.

Często Zadawane Pytania

Jaka jest różnica między parserem Set-Cookie a parserem nagłówka żądania Cookie?

Parser Set-Cookie pracuje z nagłówkami odpowiedzi serwera i skupia się na tym, „czy przeglądarka przyjmie ten Cookie i czy nie ma problemów z atrybutami”; parser Cookie pracuje z wychodzącymi żądaniami przeglądarki i pokazuje, „jakie dokładnie pliki Cookie są wysyłane w tym żądaniu”. Jeśli diagnozujesz problemy z konfiguracją SameSite, HttpOnly, Secure, Path, Domain, Expires, Max-Age, użyj bieżącej strony.

Parser HTTP Cookie

Dlaczego przeglądarka otrzymała odpowiedź, ale nie zapisała Cookie?

To jest dokładnie ten problem, do którego rozwiązania ten narzędzie nadaje się najlepiej. Częste przyczyny: SameSite=None bez Secure, próba ustawienia Secure Cookie na stronie HTTP, naruszenia prefiksu __Host-, Partitioned bez Secure, nieprawidłowa konfiguracja Path lub Domain, nieprawidłowy Max-Age lub równy 0 oraz ograniczenia przeglądarki dotyczące plików Cookie stron trzecich.

Jakie typowe ryzyka Set-Cookie sprawdza narzędzie?

Strona automatycznie wykrywa 14 powszechnych problemów: SameSite=None bez Secure, nieprawidłowa wartość SameSite, Partitioned bez Secure, brak HttpOnly, brak Path, brak SameSite, prefiks __Host- bez Secure / Path nie równa się / / nieprawidłowo ustawiony Domain, prefiks __Secure- bez Secure, nieprawidłowy Max-Age, Max-Age=0, Domain rozpoczynający się od kropki oraz Expires bez Max-Age.

Dlaczego SameSite=None koniecznie wymaga Secure?

Nowoczesne przeglądarki wymagają, aby pliki Cookie wysyłane w żądaniach międzywitrynowych z atrybutem `SameSite=None` miały również atrybut `Secure`; w przeciwnym razie przeglądarka zazwyczaj po prostu odrzuca zapis. Ten problem bardzo często występuje podczas debugowania autoryzacji stron trzecich, SSO, osadzania w iframe oraz żądań międzydomenowych.

Dlaczego przeglądarka odrzuca pliki Cookie z prefiksami __Host- i __Secure-?

`__Host-` oraz `__Secure-` to prefiksy bezpieczeństwa ze ścisłymi ograniczeniami. `__Host-` wymaga obowiązkowego Secure, Path=/ oraz zakazu ustawiania Domain; `__Secure-` co najmniej wymaga Secure. W przypadku naruszenia tych reguł przeglądarka po prostu ignoruje odpowiedni plik Cookie.

Jak interpretować Max-Age i Expires?

Max-Age to względny czas w sekundach, zazwyczaj ma priorytet nad Expires; Expires to bezwzględny punkt czasu zależny od zegara klienta. Wiele serwerów określa tylko Expires bez Max-Age — działa to, ale podczas debugowania łatwo o pomyłkę z powodu przesunięcia strefy czasowej lub czasu systemowego.

Czy narzędzie nadaje się do diagnozowania plików Cookie międzywitrynowych i stron trzecich?

Nadaje się. Niezależnie od tego, czy jest to autoryzacja stron trzecich, SSO, osadzanie w iframe, interfejsy międzydomenowe czy scenariusze CHIPS (Partitioned Cookie), to narzędzie pomoże szybko ocenić poprawność kombinacji SameSite, Secure oraz Partitioned.

Czy obsługiwane jest kopiowanie lub eksport wyników analizy?

Obsługiwane. Możesz jednym kliknięciem skopiować oryginalne nagłówki Set-Cookie, a także wyświetlić strukturalny podgląd JSON, aby przenieść nazwę, wartość, atrybuty i ostrzeżenia każdego pliku Cookie do Issue, dokumentacji, skryptów testowych lub zapisów wspólnego debugowania.

Czy moje skopiowane Session i Token są wysyłane na serwer?

Nie. Analiza treści Set-Cookie, dekodowanie URL, rozkład atrybutów oraz sprawdzanie ostrzeżeń są w całości wykonywane lokalnie w przeglądarce, poufne nagłówki odpowiedzi nie są wysyłane na serwer.

Słownik

Set-Cookie
Nagłówek odpowiedzi HTTP, przez który serwer informuje przeglądarkę o zapisaniu pliku Cookie. W jednej odpowiedzi może być kilka nagłówków Set-Cookie, każdy zazwyczaj odpowiada jednemu plikowi Cookie.
SameSite
Atrybut kontrolujący wysyłanie plików Cookie w żądaniach międzywitrynowych. Częste wartości: Strict, Lax, None; wartość None zazwyczaj wymaga jednoczesnego ustawienia Secure.
HttpOnly
Przy ustawionym atrybucie frontend JavaScript nie może odczytać tego pliku Cookie przez document.cookie, głównie używany do zmniejszenia ryzyka kradzieży sesji przez XSS.
Secure
Przy ustawionym atrybucie przeglądarka wysyła plik Cookie tylko przez połączenia HTTPS (lub w wyjątku localhost), unikając wycieku poufnych plików Cookie przez otwarty HTTP.
Max-Age
Względny czas życia pliku Cookie w sekundach. Zazwyczaj ma priorytet nad Expires, zaleca się jawne określanie na serwerze.
Expires
Bezwzględny czas wygaśnięcia pliku Cookie, zależny od lokalnego czasu klienta. Przy oddzielnym użyciu koszt debugowania jest zazwyczaj wyższy niż w przypadku Max-Age.
Path
Ogranicza prefiks ścieżki URL, dla której działa plik Cookie. W przypadku niezgodności Path, nawet jeśli plik Cookie został zapisany, nie zostanie wysłany w kolejnych żądaniach.
Domain
Ogranicza domenę, dla której działa plik Cookie. Jeśli nie zostanie określony, zazwyczaj działa tylko dla bieżącego hosta; po określeniu może rozprzestrzeniać się na poddomeny.
Partitioned (CHIPS)
Mechanizm partycjonowanego przechowywania plików Cookie stron trzecich, często używany jako alternatywa po stopniowym zaostrzaniu przez przeglądarki reguł dotyczących plików Cookie stron trzecich. Bieżąca implementacja zazwyczaj wymaga połączenia z Secure.
Prefiksy __Host- / __Secure-
Obsługiwane przez przeglądarkę prefiksy nazw plików Cookie o wysokim poziomie bezpieczeństwa, posiadające ścisłe reguły ograniczające. W przypadku naruszenia reguł przeglądarka odrzuca przyjęcie odpowiedniego pliku Cookie.

Tabela porównawcza trzech strategii SameSite

Podczas diagnozowania plików Cookie międzywitrynowych najpierw spójrz na granice zachowania SameSite, następnie sprawdź brak Secure.

Wartość SameSiteNawigacja górna międzywitrynowa (GET)Podzasoby międzywitrynowe (img/iframe/script)Formularze POST międzywitrynoweXHR/fetch międzywitrynoweCzy wymagany jest Secure
StrictNie wysyłaneNie wysyłaneNie wysyłaneNie wysyłaneNie
Lax (domyślnie)WysyłaneNie wysyłaneNie wysyłaneNie wysyłaneNie
NoneWysyłaneWysyłaneWysyłaneWysyłaneObowiązkowo potrzebny Secure

Tabela zgodności częstych problemów debugowania Set-Cookie

Kiedy przeglądarka cicho odrzuca plik Cookie, najpierw sprawdzaj według następujących kierunków — to zazwyczaj szybciej niż patrzenie na treść odpowiedzi.

ObjawNajprawdopodobniejsza przyczynaSprawdź w pierwszej kolejności
Przeglądarka w ogóle nie zapisuje pliku CookieSameSite=None bez Secure, naruszenie prefiksu lub niedopuszczalna kombinacja atrybutówNajpierw spójrz na etykiety ostrzegawcze i karty atrybutów na bieżącej stronie
Nie działa w scenariuszu międzywitrynowym / iframeZbyt restrykcyjny SameSite, brak Secure lub ograniczenia polityk stron trzecichSkup się na SameSite, Secure, Partitioned
Plik Cookie wygasa natychmiast po zapisaniuMax-Age=0, nieprawidłowy Max-Age, problemy z czasem ExpiresNajpierw Max-Age, następnie Expires
__Host- / __Secure- Cookie nie działaNie spełniono ograniczeń Secure, Path=/ lub DomainSprawdź, czy ostrzeżenie o prefiksie zadziałało
Działa w środowisku deweloperskim, nie działa w produkcjiRóżnice w odpowiedziach na poziomie HTTPS, Domain, Path, SameSite lub proxySkopiuj oryginalne nagłówki, porównaj zwracane Set-Cookie w różnych środowiskach

Privacy & Security

Analiza nagłówków odpowiedzi Set-Cookie, dekodowanie URL, rozkład atrybutów oraz sprawdzanie 14 typów ostrzeżeń są w całości wykonywane lokalnie w przeglądarce. Wklejone Session, Token i pliki Cookie sesji nie są wysyłane na żadne serwery.