← Назад к вопросам

Что хранится в файлах Cookies?

1.2 Junior🔥 71 комментариев
#Другое

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что хранится в файлах Cookies?

Cookies (печенья) — это небольшие текстовые файлы, которые браузер сохраняет на клиентской машине и отправляет обратно серверу с каждым запросом. Они являются ключевым механизмом для хранения состояния и данных о пользователе в веб-приложениях.

Основное содержимое Cookie

Каждый cookie содержит следующие элементы:

  1. Имя и значение (Name-Value pair) — основные данные

    • Максимум 4 KB на один cookie
    • Текстовый формат
  2. Domain — домен, для которого действует cookie

    • По умолчанию текущий домен
    • Пример: .example.com (применяется ко всем поддоменам)
  3. Path — путь на сервере

    • По умолчанию /
    • Браузер отправляет cookie только для запросов, совпадающих с этим путём
  4. Expires/Max-Age — время жизни

    • Expires: конкретная дата и время истечения
    • Max-Age: время жизни в секундах
    • Если не указано — cookie удаляется при закрытии браузера (session cookie)
  5. Secure — флаг безопасности

    • Cookie отправляется только по HTTPS
    • Защита от перехвата по незашифрованным каналам
  6. HttpOnly — флаг доступа

    • Изоляция от JavaScript (недоступна для document.cookie)
    • Защита от XSS-атак
  7. SameSite — защита от CSRF

    • Strict — не отправляется при кросс-сайтовых запросах
    • Lax — отправляется для безопасных методов (GET) при кросс-сайтовых переходах
    • None — отправляется всегда (требует Secure flag)

Пример структуры Cookie

// Заголовок ответа сервера (Set-Cookie):
// Set-Cookie: sessionId=abc123def456; Path=/; Domain=.example.com;
// Max-Age=3600; Secure; HttpOnly; SameSite=Lax

// Результат на клиенте:
// {
//   name: sessionId,
//   value: abc123def456,
//   domain: .example.com,
//   path: /,
//   secure: true,
//   httpOnly: true,
//   sameSite: Lax,
//   expiresAt: 2026-03-23T14:30:00Z
// }

Работа с Cookies в Java

На сервере (Servlet API)

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Cookie;

public void setUserCookie(HttpServletResponse response) {
    String sessionId = generateSessionId();
    Cookie cookie = new Cookie("sessionId", sessionId);
    
    cookie.setPath("/");
    cookie.setDomain(".example.com");
    cookie.setMaxAge(3600);
    cookie.setSecure(true);
    cookie.setHttpOnly(true);
    cookie.setAttribute("SameSite", "Lax");
    
    response.addCookie(cookie);
}

public String readSessionId(HttpServletRequest request) {
    Cookie[] cookies = request.getCookies();
    
    if (cookies != null) {
        for (Cookie cookie : cookies) {
            if ("sessionId".equals(cookie.getName())) {
                return cookie.getValue();
            }
        }
    }
    return null;
}

public void deleteCookie(HttpServletResponse response) {
    Cookie cookie = new Cookie("sessionId", "");
    cookie.setPath("/");
    cookie.setMaxAge(0);
    response.addCookie(cookie);
}

Типичные используемые Cookies

CookieНазначение
Session IDИдентификация пользовательской сессии
Authentication TokenJWT или другой токен аутентификации
PreferencesСохранение предпочтений пользователя
TrackingАналитика и отслеживание
AdvertisingТаргетированная реклама

Ограничения

  • Размер: максимум 4 KB на один cookie
  • Количество: браузер обычно хранит до 180 cookies на домен
  • Видимость: видны в DevTools, могут быть просмотрены пользователем
  • Безопасность: могут быть украдены при перехвате HTTPS без Secure flag

Best Practices

  1. Используй HttpOnly для cookies с чувствительной информацией
  2. Используй Secure для всех cookies (требует HTTPS)
  3. Установи SameSite для защиты от CSRF
  4. Минимизируй размер — передаются с каждым запросом
  5. Используй HTTPS для защиты данных в пути
  6. Устанавливай короткие TTL для session cookies
  7. Логируй доступ к критичным cookies

Key Takeaway

Cookies хранят пары имя-значение с метаданными контроля доступа и срока жизни, позволяя серверу отслеживать состояние клиента. Правильная конфигурация флагов (HttpOnly, Secure, SameSite) критична для безопасности веб-приложения.

Что хранится в файлах Cookies? | PrepBro