Какие флаги cookie нужно знать на собеседовании и за что они отвечают?

Флаги cookie: назначение и защита HttpOnly: блокирует доступ к cookie из JS и снижает риск XSS-атак Secure: разрешает отправку cookie только по HTTPS и защищает их от перехвата SameSite: ограничивает передачу cookie…

Короткий ответ

Что ответить на собеседовании

Флаги cookie: назначение и защита HttpOnly: блокирует доступ к cookie из JS и снижает риск XSS-атак Secure: разрешает отправку cookie только по HTTPS и защищает их от перехвата SameSite: ограничивает передачу cookie между сайтами и помогает уменьшить риск CSRF доступные значения: Strict, Lax, None Path: определяет, для каких URL доступна cookie Domain: указывает, каким субдоменам разрешён доступ к cookie Expires/Max-Age: задаёт период действия cookie, по завершении которого она удаляется Priority (используется редко): определяет приоритет cookie при хранении браузером

Подробный разбор

Ответ с пояснениями

Флаги cookie: назначение и защита

  • HttpOnly: блокирует доступ к cookie из JS и снижает риск XSS-атак
  • Secure: разрешает отправку cookie только по HTTPS и защищает их от перехвата
  • SameSite: ограничивает передачу cookie между сайтами и помогает уменьшить риск CSRF
  • доступные значения: Strict, Lax, None
  • Path: определяет, для каких URL доступна cookie
  • Domain: указывает, каким субдоменам разрешён доступ к cookie
  • Expires/Max-Age: задаёт период действия cookie, по завершении которого она удаляется
  • Priority (используется редко): определяет приоритет cookie при хранении браузером

В совокупности эти флаги управляют безопасностью и областью действия cookie, помогая снизить вероятность атак и утечки данных.

Развёрнутый ответ

Краткий ответ

HTTP cookies поддерживают несколько значимых флагов, определяющих их безопасность, область действия и правила поведения. К основным относятся HttpOnly, Secure и SameSite. С их помощью можно защитить куки от XSS и CSRF, а также задать условия, при которых браузер отправляет их серверу.

Основные особенности

  • HttpOnly — делает куки недоступным для JavaScript на клиенте, в том числе через document.cookie. Это уменьшает вероятность кражи куки при XSS-атаке. Чаще всего такой флаг устанавливают для сессионных токенов.
  • Secure — разрешает передачу куки только через защищённое HTTPS-соединение и тем самым препятствует её перехвату в незашифрованном трафике.
  • SameSite — определяет, отправляется ли куки в запросах между разными доменами. Флаг поддерживает следующие значения:
  • Strict — куки не передаются при переходе пользователя с внешнего сайта. Это обеспечивает максимальную защиту от CSRF, но способно ухудшить UX,
  • Lax — компромиссный режим: куки отправляется при "безопасных" переходах, например во время навигации с GET-запросом,
  • None — куки передаётся всегда, однако для этого необходимо включить Secure.
  • Path — определяет путь на сервере, в пределах которого действует куки. Например, /app будет применяться только к URL внутри /app.
  • Domain — задаёт домен, к которому относится куки; если параметр не указан, используется домен, установивший куки.
  • Expires / Max-Age — задаёт продолжительность жизни куки: Expires содержит дату окончания действия, а Max-Age — срок в секундах. Если эти параметры отсутствуют, куки считается сессионным и удаляется после закрытия браузера.

Применение на практике

В системах, где требования к безопасности особенно высоки, например в финтехе и административных панелях, для сессионных куков обязательно используют HttpOnly+Secure+SameSite=Strict. На публичных сайтах часто выбирают SameSite=Lax, чтобы сохранить удобство авторизации и одновременно снизить риск CSRF. В новых спецификациях браузеров Account Service рекомендует всегда включать SameSite для более точного контроля.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку