Ответ
Cookies (куки) — это небольшие фрагменты данных (до ~4 КБ), которые сервер отправляет браузеру пользователя и которые браузер автоматически возвращает при последующих запросах к тому же домену. Это механизм хранения состояния (state) на стороне клиента.
Основные атрибуты и их значение для тестирования:
NameиValue: Данные, хранимые в cookie.Expires/Max-Age: Срок жизни. Куки без этих атрибутов — сессионные (удаляются при закрытии браузера).Secure: Куки передаются только по HTTPS. Обязательно для проверки в защищенных приложениях.HttpOnly: Запрещает доступ к кукам через JavaScript (document.cookie). Защита от XSS-атак.SameSite: Контролирует отправку кук с межсайтовыми запросами. Значения:Strict,Lax,None.
Пример HTTP-заголовка:
Set-Cookie: session_id=abc123def456; Expires=Wed, 21 Oct 2025 07:28:00 GMT; Secure; HttpOnly; SameSite=Lax
Что нужно проверять QA:
- Корректность установки и отправки кук (инструменты: DevTools → Application/Storage).
- Соблюдение политик безопасности (
Secure,HttpOnly,SameSite). - Влияние на функциональность: поведение при очистке кук, истечении срока действия, отключении в браузере.
- Отличие от Web Storage: LocalStorage/SessionStorage не отправляются на сервер автоматически, имеют больший лимит (~5 МБ) и API, доступный только на клиенте.
Ответ 18+ 🔞
Слушай, а вот эти ваши куки — это ж, блядь, такие мелкие бумажки, которые сервер тебе в браузер суёт, а ты их потом, как послушный пёс, обратно тащишь при каждом чихе. Ну, типа, чтобы сервер тебя узнал, а не думал, что ты каждый раз новый мудак пришёл. Объём — до 4 килобайт, больше не влезет, так что не разгуляешься.
Вот на что там смотреть надо, а то нихуя не поймёшь:
- Имя и Значение (
Name/Value): Ну, сами данные, чё там.user=vasya,token=abc123— вся эта хуйня. - Срок годности (
Expires/Max-Age): Атрибут «съешь до». Если его нет — кука сессионная, удалится, как только браузер закроешь. Как будто её и не было, блядь. Secure: Эта штука значит, что куку будут таскать только по защищённому HTTPS. Если её нет на важной куке — это пиздец и дыра, можно мимо кассы проходить.HttpOnly: А это, ёпта, гениальная штука! Она говорит: «JavaScript, иди нахуй, не трогай мои куки». Защита от этих ваших XSS-атак, когда скрипт левый пытается стырить сессию. Если её нет на куке с токеном — волнение ебать, терпения ноль.SameSite: Контролирует, чтобы куки не бегали на левые сайты, куда не просили.Strict— вообще никуда,Lax— только по безопасным переходам,None— похуй, везде (но тогдаSecureобязателен!).
Вот как это в жизни выглядит, смотри:
Set-Cookie: auth=supersecret; Expires=Wed, 21 Oct 2025 07:28:00 GMT; Secure; HttpOnly; SameSite=Lax
Видишь? Сервер говорит: «Держи, чувак, ключ от квартиры. Но только по HTTPS, JS его не увидит, и на соседние помойки не таскай».
И что тебе, как тестировщику, делать с этим добром?
- Где мои куки, блядь? Открывай DevTools (F12) → Вкладка «Application» или «Storage» → «Cookies». Смотри, приходят ли они, правильные ли значения, отправляются ли обратно. Если нет — нихуя не работает.
- Безопасность, ёбана! На всех важных куках (сессия, токен) обязательно должны быть
SecureиHttpOnly.SameSite— обычноLaxилиStrict. Если нет — пиши баг, это не шутки. - А что если... Почисти куки в браузере — тебя разлогинило? Жди истечения срока — сессия проёбана? Отключи куки в настройках — сайт встал колом? Вот это всё и проверяй.
- Не путай с другим хламом! Это не LocalStorage, блядь. LocalStorage — это твой личный сейф в браузере (до 5 МБ), сервер его сам не увидит. А куки — это как записка, которую ты каждый раз показываешь швейцару. Совсем разные вещи, ёпта!