Парсер Set-Cookie
Set-Cookie Parser
Вставьте многострочные заголовки ответа Set-Cookie для проверки атрибутов и выявления опасных комбинаций SameSite / Secure.
Карточки атрибутов Cookie
setCookieParser.attr.maxAgeHint
Предпросмотр 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"
]
}
]Когда браузер не принимает Cookie, часто проблема не в значении, а в неверных атрибутах Set-Cookie.
Похожие
Что такое парсер Set-Cookie?
Парсер Set-Cookie — это отладочный инструмент, специально предназначенный для анализа содержимого `Set-Cookie` в HTTP-заголовках ответа. Его цель — не просто разбить строку по точкам с запятой, а помочь разработчикам определить: корректна ли конфигурация этого Cookie на сервере, почему браузер его не принял, какие комбинации атрибутов создают риски безопасности или совместимости, и подходит ли текущий Set-Cookie для кросс-сайтовых сценариев, SSO, iframe, сторонних Cookie или сессий.
В отличие от Cookie в заголовке запроса, Set-Cookie — это «команда конфигурации», которую сервер отправляет браузеру. Он содержит не только `name=value`, но и атрибуты SameSite, Secure, HttpOnly, Path, Domain, Expires, Max-Age, Partitioned — эти поля напрямую определяют, запишет ли браузер Cookie, когда он истечёт, для каких путей и доменов он действует, и можно ли его отправлять в кросс-сайтовых запросах. Поэтому коренные причины многих проблем «потеря сессии», «браузер не отправляет Cookie», «не работает в кросс-доменном сценарии» кроются не в самом значении, а в конфигурации атрибутов Set-Cookie.
Ценность текущей страницы в том, чтобы структурированно извлечь эти атрибуты из исходного заголовка ответа, а затем выполнить статическую проверку на соответствие реальным правилам браузера. Например, не отсутствует ли Secure у SameSite=None, сочетается ли Partitioned с Secure, не указан ли ошибочно Domain у префикса __Host-, невалиден ли Max-Age или равен 0, не отсутствует ли Max-Age у Expires. Браузер обычно не показывает эти проблемы как синтаксические ошибки, а просто молча отклоняет Cookie или демонстрирует «не работает», поэтому инструментальная проверка очень важна.
Если вы просто хотите узнать, какие Cookie сейчас отправляются в запросе, не оставайтесь на этой странице — перейдите к «Парсеру HTTP Cookie», который лучше подходит для разбора заголовков запроса. Текущая страница больше подходит для сценариев диагностики заголовков ответа: «почему браузер не записал Cookie», «есть ли скрытые проблемы в конфигурации этого Cookie на сервере», «корректна ли комбинация кросс-сайтовых атрибутов и атрибутов безопасности».
Варианты использования
- Быстрая локализация проблем с конфигурацией SameSite, Secure, HttpOnly, Path/Domain, когда браузер отклоняет запись Cookie
- Проверка корректности сочетания SameSite=None с Secure в сценариях сторонней авторизации, SSO, встраивания в iframe или кросс-сайтовых запросов
- Массовая проверка Cookie, возвращаемых интерфейсами, на отсутствие HttpOnly, SameSite или наличие высокорисковых комбинаций атрибутов при аудите безопасности
- Проверка удовлетворения строгим ограничениям браузера для Cookie с префиксами __Host-/__Secure-, чтобы избежать молчаливого отбрасывания
- Подтверждение одновременного объявления Partitioned и Secure при отладке механизма разделённых сторонних Cookie Partitioned Cookie / CHIPS
- Сравнение различий заголовков Set-Cookie между средами разработки, тестирования и продакшена для диагностики аномалий сессии после переключения сред
Как использовать
- Скопируйте содержимое заголовков ответа Set-Cookie (поддерживается многострочный ввод) из браузерных DevTools, сниффера или серверных логов
- Вставьте в область ввода, инструмент автоматически удалит префикс `Set-Cookie:` и выполнит построчный анализ
- Просмотрите имя, значение, декодированное URL-значение, карточки атрибутов и предупреждающие метки каждого Cookie
- Скопируйте исходные заголовки или просмотрите JSON-предпросмотр, отправьте результаты бэкенду, вставьте в Issue или в тестовые скрипты
Функции
- Независимый анализ нескольких Set-Cookie: каждая строка в отдельной карточке, просмотр имени, исходного значения, декодированного URL-значения и атрибутов
- Автоматическая проверка 14 типичных проблем: покрывает SameSite, Secure, HttpOnly, Path, Domain, Max-Age, Expires, префиксы __Host-/__Secure- и Partitioned
- Полный разбор атрибутов: структурированное отображение полей SameSite, Secure, HttpOnly, Path, Domain, Expires, Max-Age, Partitioned
- Человекочитаемое преобразование Max-Age: секунды автоматически конвертируются в минуты, часы и дни
- Многострочный пакетный ввод: можно вставить весь блок заголовков Set-Cookie из DevTools или сниффера
- Копирование исходных заголовков и JSON-предпросмотр: удобно отправлять бэкенду, использовать в документации, Issue, скриптах и тестах
- Локальная обработка без загрузки: конфиденциальные Session, Token и Cookie сессии анализируются в браузере, не покидая устройство
Когда использовать парсер Set-Cookie, а когда две другие страницы?
Понять, «что настроил сервер» и «что фактически отправляется в запросе» — это две разные вещи, не смешивайте их при диагностике.
| Инструмент | Подходящий ввод | Лучше всего подходит | Ключевое преимущество |
|---|---|---|---|
| Парсер Set-Cookie (текущая страница) | Заголовки ответа Set-Cookie | Диагностика причин, по которым браузер не принимает Cookie, почему не работает кросс-сайтовая отправка, почему есть риски в конфигурации атрибутов безопасности | Полный разбор атрибутов и автоматическая проверка 14 распространённых проблем конфигурации |
| Парсер HTTP Cookie | Заголовок запроса Cookie, document.cookie | Подтверждение того, какие Cookie фактически отправляются в запросе, закодированы ли значения URL-способом, есть ли повторяющиеся имена | Более сфокусирован на разборе пар имя-значение в заголовке запроса и стандартизированном выводеОткрыть парсер HTTP Cookie |
| Парсер Cookie | Смешанные сценарии со строками Cookie и Set-Cookie | Когда источник данных пока не ясен, или нужно быстро переключаться между режимами Cookie / Set-Cookie на одной странице | Выглядит как главный вход для отладки Cookie, поддерживает экспорт Netscape Cookie FileОткрыть парсер Cookie |
Best Practices
Сначала определите, проблема в «неудачной установке» или «неотправке в запросе»
Если браузер вообще не записал Cookie, начните с текущей страницы; если Cookie уже записан, но не отправляется в последующих запросах, используйте парсер HTTP Cookie совместно. Set-Cookie и Cookie в заголовке запроса — это два разных этапа.
В кросс-сайтовых сценариях сначала проверяйте комбинацию SameSite=None и Secure
Самая частая проблема в SSO, сторонней авторизации, встраивании в iframe и кросс-доменных запросах — это SameSite=None без Secure. Сначала устраните эту проблему, затем проверяйте серверную логику и политики браузера.
Не смотрите только на имя с префиксами __Host- / __Secure-, проверяйте полноту ограничений
Многие команды думают, что добавление префикса `__Host-` или `__Secure-` к имени Cookie уже делает его безопаснее, но если сопутствующие условия Secure, Path=/, Domain не выполнены, браузер всё равно отклонит запись.
При написании документации и воспроизведении Issue сохраняйте и исходные заголовки, и JSON
Исходные заголовки подходят для проверки реальных возвращаемых значений бэкендом и DevOps; JSON подходит для вставки в Issue, тест-кейсы и скрипты для дальнейшей обработки. Сохранение обоих материалов лучше, чем просто скриншот из DevTools, для воспроизведения и совместной работы.
Часто задаваемые вопросы
В чём разница между парсером Set-Cookie и парсером заголовка запроса Cookie?
Парсер Set-Cookie работает с заголовками ответа сервера и фокусируется на том, «примет ли браузер этот Cookie и нет ли проблем с атрибутами»; парсер Cookie работает с исходящими запросами браузера и показывает, «какие именно Cookie отправляются в этом запросе». Если вы диагностируете проблемы с конфигурацией SameSite, HttpOnly, Secure, Path, Domain, Expires, Max-Age, используйте текущую страницу.
Парсер HTTP CookieПочему браузер получил ответ, но не записал Cookie?
Это именно та проблема, для решения которой лучше всего подходит данный инструмент. Частые причины: SameSite=None без Secure, попытка установить Secure Cookie на HTTP-странице, нарушения префикса __Host-, Partitioned без Secure, некорректная конфигурация Path или Domain, невалидный Max-Age или равный 0, а также ограничения браузера на сторонние Cookie.
Какие типичные риски Set-Cookie проверяет инструмент?
Страница автоматически обнаруживает 14 распространённых проблем: SameSite=None без Secure, невалидное значение SameSite, Partitioned без Secure, отсутствие HttpOnly, отсутствие Path, отсутствие SameSite, префикс __Host- без Secure / Path не равен / / неверно указан Domain, префикс __Secure- без Secure, невалидный Max-Age, Max-Age=0, Domain начинается с точки и Expires без Max-Age.
Почему SameSite=None обязательно требует Secure?
Современные браузеры требуют, чтобы Cookie, отправляемые в кросс-сайтовых запросах с атрибутом `SameSite=None`, обязательно имели и атрибут `Secure`, иначе браузер обычно просто отклоняет запись. Эта проблема очень часто встречается при отладке сторонней авторизации, SSO, встраивания в iframe и кросс-доменных запросов.
Почему браузер отклоняет Cookie с префиксами __Host- и __Secure-?
`__Host-` и `__Secure-` — это префиксы безопасности со строгими ограничениями. `__Host-` требует обязательного Secure, Path=/ и запрета на установку Domain; `__Secure-` как минимум требует Secure. При нарушении этих правил браузер просто игнорирует соответствующий Cookie.
Как интерпретировать Max-Age и Expires?
Max-Age — это относительное время в секундах, обычно имеет приоритет над Expires; Expires — это абсолютная точка времени, зависящая от часов клиента. Многие серверы указывают только Expires без Max-Age — это работает, но при отладке легко получить ошибку из-за смещения часового пояса или системного времени.
Подходит ли инструмент для диагностики кросс-сайтовых и сторонних Cookie?
Подходит. Будь то сторонняя авторизация, SSO, встраивание в iframe, кросс-доменные интерфейсы или сценарии CHIPS (Partitioned Cookie), этот инструмент поможет быстро оценить корректность комбинации SameSite, Secure и Partitioned.
Поддерживается ли копирование или экспорт результатов анализа?
Поддерживается. Вы можете одним кликом скопировать исходные заголовки Set-Cookie, а также просмотреть структурированный JSON-предпросмотр, чтобы перенести имя, значение, атрибуты и предупреждения каждого Cookie в Issue, документацию, тестовые скрипты или записи совместной отладки.
Отправляются ли мои скопированные Session и Token на сервер?
Нет. Анализ содержимого Set-Cookie, URL-декодирование, разбор атрибутов и проверка предупреждений полностью выполняются локально в браузере, конфиденциальные заголовки ответа не загружаются на сервер.
Глоссарий
- Set-Cookie
- HTTP-заголовок ответа, через который сервер сообщает браузеру сохранить Cookie. В одном ответе может быть несколько заголовков Set-Cookie, каждый обычно соответствует одному Cookie.
- SameSite
- Атрибут, контролирующий отправку Cookie в кросс-сайтовых запросах. Частые значения: Strict, Lax, None; значение None обычно требует одновременной установки Secure.
- HttpOnly
- При установленном атрибуте фронтенд JavaScript не может прочитать этот Cookie через document.cookie, в основном используется для снижения риска кражи сессии через XSS.
- Secure
- При установленном атрибуте браузер отправляет Cookie только по HTTPS-соединениям (или в исключении localhost), избегая утечки конфиденциальных Cookie по открытому HTTP.
- Max-Age
- Относительное время жизни Cookie в секундах. Обычно имеет приоритет над Expires, рекомендуется явно указывать на сервере.
- Expires
- Абсолютное время истечения Cookie, зависит от локального времени клиента. При отдельном использовании стоимость отладки обычно выше, чем у Max-Age.
- Path
- Ограничивает префикс URL-пути, для которого действует Cookie. При несовпадении Path, даже если Cookie записан, он не будет отправлен в последующих запросах.
- Domain
- Ограничивает домен, для которого действует Cookie. Если не указан, обычно действует только для текущего хоста; при указании может распространяться на поддомены.
- Partitioned (CHIPS)
- Механизм разделённого хранения сторонних Cookie, часто используется как альтернатива после постепенного ужесточения браузерами правил для сторонних Cookie. Текущая реализация обычно требует сочетания с Secure.
- Префиксы __Host- / __Secure-
- Поддерживаемые браузером префиксы имён Cookie с высоким уровнем безопасности, имеющие строгие ограничительные правила. При нарушении правил браузер отклоняет приём соответствующего Cookie.
Справочная таблица сравнения трёх стратегий SameSite
При диагностике кросс-сайтовых Cookie сначала посмотрите на границы поведения SameSite, затем проверьте отсутствие Secure.
| Значение SameSite | Кросс-сайтовая топ-навигация (GET) | Кросс-сайтовые субресурсы (img/iframe/script) | Кросс-сайтовые POST-формы | Кросс-сайтовые XHR/fetch | Обязателен ли Secure |
|---|---|---|---|---|---|
| Strict | Не отправляется | Не отправляется | Не отправляется | Не отправляется | Нет |
| Lax (по умолчанию) | Отправляется | Не отправляется | Не отправляется | Не отправляется | Нет |
| None | Отправляется | Отправляется | Отправляется | Отправляется | Обязательно нужен Secure |
Таблица соответствия частых проблем отладки Set-Cookie
Когда браузер молча отклоняет Cookie, сначала проверяйте по следующим направлениям — это обычно быстрее, чем смотреть на тело ответа.
| Симптом | Наиболее вероятная причина | Проверьте в первую очередь |
|---|---|---|
| Браузер вообще не записывает Cookie | SameSite=None без Secure, нарушение префикса или недопустимая комбинация атрибутов | Сначала посмотрите на предупреждающие метки и карточки атрибутов на текущей странице |
| Не работает в кросс-сайтовом / iframe сценарии | Слишком строгий SameSite, отсутствие Secure или ограничения сторонних политик | Фокус на SameSite, Secure, Partitioned |
| Cookie истекает сразу после записи | Max-Age=0, невалидный Max-Age, проблемы со временем Expires | Сначала Max-Age, затем Expires |
| __Host- / __Secure- Cookie не работает | Не выполнены ограничения Secure, Path=/ или Domain | Проверьте, сработало ли предупреждение о префиксе |
| Работает в среде разработки, не работает в продакшене | Различия в ответах на уровне HTTPS, Domain, Path, SameSite или прокси | Скопируйте исходные заголовки, сравните возвращаемые Set-Cookie в разных средах |
Privacy & Security
Анализ заголовков ответа Set-Cookie, URL-декодирование, разбор атрибутов и проверка 14 типов предупреждений полностью выполняются локально в браузере. Вставленные Session, Token и Cookie сессии не загружаются на какие-либо серверы.
- Генератор заголовков авторизации
- Парсер Cache-Control
- Парсер Content-Disposition
- Генератор CORS-заголовков
- CORS инспектор
- Генератор CSP
- Конвертер cURL в код
- Глобальная проверка распространения DNS
- DNS-запрос
- Парсер Forwarded-заголовков
- Генератор hreflang
- Анализатор HSTS
- Парсер HTTP-куки
- Проверка HTTP-заголовков
- Тестер HTTP-запросов
- Справочник кодов состояния HTTP
- Поиск IP
- Конвертер IPv4
- Развёртка IPv4-диапазонов
- IPv6 тулбокс
- Парсер Link-заголовков
- MX-записи
- Проверка портов
- Конструктор URL-параметров
- Парсер заголовков Rate Limit
- Инспектор редиректов
- Генератор Robots.txt
- Инспектор robots.txt
- Проверка заголовков безопасности
- Генератор security.txt
- Парсер Set-Cookie
- Аудит сети сайта
- Генератор Sitemap
- Инспектор sitemap
- Проверка SSL-сертификатов
- Калькулятор подсетей
- Парсер URL
- Парсер User-Agent
- Генератор UTM-ссылок
- Тест WebSocket
- Какой мой IP?
- Проверка WHOIS