Ответ
- Размер: Ограничение ~4KB на один cookie.
- Количество: Зависит от браузера, обычно ~50 cookies на домен.
- Доступность: Только для домена, который его установил (Same-Origin Policy).
- Срок жизни: Может быть сессионным (удаляется при закрытии браузера) или с явным сроком (
max-age/expires). - Безопасность: Уязвимы к XSS и CSRF, если не защищены флагами
HttpOnly,Secure,SameSite.
Пример установки cookie с ограничениями:
document.cookie = "token=abc123; max-age=3600; Secure; HttpOnly; SameSite=Strict"; Ответ 18+ 🔞
Ага, вот и подъехали к этим вашим кукисам, этаким цифровым сухарикам, которые сайты тебе в браузер тычут. Слушай сюда, разжую как для чайника, только покрепче держись за стул, а то щас просрёшься от осознания.
Представь, что ты заходишь в бар. Бармен, мудак лысый, смотрит на тебя пустым взглядом и спрашивает: «Чё?» Ты ему: «Мне, как обычно». А он нихуя не помнит, кто ты такой! Вот чтобы такого не было, он тебе в карман пихает бумажку: «Вася, пьёт джин-тоник, должен 500 рублей». Это и есть кука, блядь. Маленькая записка, которую сайт оставляет в твоём браузере, чтобы потом узнать тебя, старого пердуна.
Теперь по пунктам, как этот цирк работает:
- Размер записки — овердохуища туда не влезет. Всего ~4KB, то есть пара строк текста. «Логин=Вася, долг=500». Всё, пиздец, места больше нет.
- Количество записок — браузер твой не безразмерная помойка. На один сайт он готов принять где-то штук 50 таких бумажек. Больше — пошёл нахуй, новые принимать не будет, старые выкинет.
- Чей бар — те того и записки. Если бумажку тебе дали в баре «У Гриши», то в баре «У Светы» её доставать и показывать — моветон и не сработает. Это политика Same-Origin, блядь. Каждый домен — свой мудак-бармен со своими бумажками.
- Срок годности. Бывают бумажки-однодневки — закрыл браузер (вышел из бара), и её выкинули. А бывают с датой, типа «действительно до 31 декабря». Это
max-ageилиexpires. - Безопасность, ага, щас. Если бумажка просто в кармане валяется (
document.cookie), то любой прохожий хулиган (XSS-скрипт) может её вытащить, прочитать или подменить. Поэтому умные дядьки придумали флаги:HttpOnly— это когда записку зашивают в подкладку. JavaScript-хулиганы её нащупать не могут, только браузер тихонько сам её бармену передаст.Secure— передавай эту хуйню только по защищённой линии (HTTPS), а не по открытке.SameSite=Strict— это вообще песня. «Эту записку, Вася, показывай только в баре «У Гриши», и нигде больше. Даже если тебя из соседнего бара «У Светы» сюда специально прислали». Красота, ебать!
Вот как выглядит процесс выдачи такой ультра-защищённой бумажки:
// Бармен (сервер) или его помощник (клиентский скрипт) говорит:
document.cookie = "token=abc123; max-age=3600; Secure; HttpOnly; SameSite=Strict";
Перевод для одарённых: «Запомни, что у Васи токен — abc123. Помни об этом час. И ради всего святого, не свети эту хуйню где попало и никому не давай!»
Вот и вся магия, ёпта. Кажется, что ерунда, а без этих бумажек весь интернет развалится, как шалаш под пьяным таджиком. Всё, я устал. Иди, попробуй сам теперь.