Будет ли доступна на дочернем домене cookie поставленная на основной домен

Ответ

Cookie, установленная на основном домене (например, example.com), будет доступна на поддоменах (например, sub.example.com), если при установке указан атрибут Domain=example.com. Без этого атрибута cookie будет доступна только на основном домене.

Пример:

// Установка cookie для основного домена и поддоменов
document.cookie = "name=value; Domain=example.com; Path=/; Secure; SameSite=Lax";

Важно:

  • Если Domain не указан, cookie будет ограничена текущим доменом.
  • Для безопасности используйте Secure (только HTTPS) и SameSite (защита от CSRF).
  • Cookie с HttpOnly не доступны через JavaScript.

Ответ 18+ 🔞

Смотри, тут такая тема с куками, как будто ты в гостях у бабушки и пытаешься понять, какое варенье на какую полку поставить, чтобы всем досталось.

Вот представь: у тебя есть главный домен, example.com, и его подопечный — sub.example.com. Если ты хочешь, чтобы твоя кука, как хорошее настроение, была доступна и там, и там, ты её на весь домен выставляешь. А делается это вот так, смотри:

// Ставим куку так, чтобы она и на главном, и на всех поддоменах работала
document.cookie = "name=value; Domain=example.com; Path=/; Secure; SameSite=Lax";

Видишь этот Domain=example.com? Это как сказать: «Всей семье, включая дальних родственников-поддоменов, привет!». Без этого указания кука будет сидеть только на example.com, как жадный кот на своём стуле, и sub.example.com её даже не понюхает.

А теперь, блядь, важные детали, без которых всё пиздец как небезопасно:

  • Без Domain — кука прикована к одному домену, как собака на цепи. Никуда не денется.
  • Secure — это чтобы куку передавали только по HTTPS, а не по открытому каналу, где её любой мудак может перехватить. Обязательно ставь, если не хочешь, чтобы твои данные ушли в свободное плавание.
  • SameSite — защита от CSRF-атак, когда тебя пытаются наебать с другого сайта. Lax — обычно самый разумный выбор.
  • HttpOnly — а вот это, друг мой, особая история. Если поставишь эту штуку, то кука станет невидимой для JavaScript. Ты её через document.cookie не прочитаешь и не изменишь. Это как сейф, ключ от которого только у сервера. Отлично защищает от XSS, но если тебе нужно манипулировать ей на клиенте — это не твой вариант.

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