Какие знаешь флаги Cookies

Ответ

Cookies имеют несколько важных флагов, влияющих на их поведение:

  1. Secure – куки передаются только по HTTPS.
    Set-Cookie: session=abc123; Secure

  2. HttpOnly – запрещает доступ к кукам через JavaScript (защита от XSS).
    Set-Cookie: token=xyz456; HttpOnly

  3. SameSite – контролирует отправку куков с cross-site запросами:

    • Strict – куки только для своего сайта
    • Lax – разрешает GET-запросы с переходом (по умолчанию в современных браузерах)
    • None – разрешает cross-site (требует Secure)
  4. Path – ограничивает путь, для которого куки действительны.
    Set-Cookie: user=admin; Path=/admin

  5. Domain – указывает домен, для которого куки доступны (включая поддомены, если указан .example.com).

  6. Expires/Max-Age – время жизни куки (без них – сессионная кука).
    Set-Cookie: lang=en; Max-Age=3600

Пример настройки:

Set-Cookie: auth=token123; Secure; HttpOnly; SameSite=Lax; Max-Age=86400

Ответ 18+ 🔞

Да ты посмотри, какие эти куки хитрые, блядь! Не просто такую хуйню в браузер пихают, там целая наука, ёпта!

Вот смотри, у них есть флаги, как у настоящих военных, только для безопасности. Первый, Secure – это чтоб только по шифрованному HTTPS летали, а не по открытому, как дурачки. Записывается так: Set-Cookie: session=abc123; Secure. Без этого флага – пиши пропало, перехватят, суки.

Дальше, HttpOnly – вот это гениальная штука, блядь! Кука становится невидимой для JavaScript'а. То есть какой-нибудь скрипт-гадёнок через XSS её не сцапает. Пишешь: Set-Cookie: token=xyz456; HttpOnly и спишь спокойно. Ну, почти.

А вот SameSite – это вообще песня, ядрёна вошь! Контролирует, чтобы куки не шлялись по левым сайтам, как последние шлюхи.

  • Strict – ваще никуда, сиди дома, на своём сайте и не высовывайся.
  • Lax – ну, ладно, можешь сходить в гости, но только если тебя ведут за ручку по ссылке (GET-запросом). Сейчас в браузерах это по умолчанию, умные стали, блядь.
  • None – «похуй, лети куда хочешь». Но за такую вольницу требуют флаг Secure, иначе не пустят.

Path – это чтоб кука знала своё место, в прямом смысле. Set-Cookie: user=admin; Path=/admin – значит, будет работать только в разделе /admin, а в корне уже не наглеет.

Domain – ну, домен указывает. Если с точкой вначале (.example.com), то и для всех поддоменов доступна, хитрая жопа.

Ну и Expires/Max-Age – срок годности, как у молока. Без них – кука сессионная, умрёт, как только вкладку закроешь. А так – живёт, пока время не выйдет: Set-Cookie: lang=en; Max-Age=3600 (час, например).

Вот смотри, как всё это в одну здоровенную, ебейшую строку собирается, чтоб всё и сразу защитить:

Set-Cookie: auth=token123; Secure; HttpOnly; SameSite=Lax; Max-Age=86400

Перевод: «Кука auth, живи сутки, летай только по HTTPS, JavaScript'у на тебя срать, и в чужие сайты не лезь без приглашения». Красота, ёперный театр!