Ответ
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, чтобы потом не охуевать от утечек.