Ответ
HTTPOnly cookie — это флаг, который можно установить для куки, чтобы предотвратить доступ к ней через JavaScript (через document.cookie). Это мера безопасности, защищающая от XSS-атак (Cross-Site Scripting), так как злоумышленник не сможет украсть куки, даже если внедрит вредоносный скрипт.
Пример установки HTTPOnly cookie на сервере (Node.js с Express):
res.cookie('sessionId', '12345', {
httpOnly: true,
secure: true, // рекомендуется для HTTPS
sameSite: 'strict'
});
Особенности:
- Доступно только в HTTP-запросах (серверу и браузеру)
- Нельзя прочитать/изменить через JavaScript
- Поддерживается всеми современными браузерами
Используется для хранения чувствительных данных, например, сессионных идентификаторов.
Ответ 18+ 🔞
А, слушай, смотри, вот эта штука — HTTPOnly cookie. Это ж, блядь, как замок на холодильнике от пьяного соседа по хате! Суть в чём: ты вешаешь на куку специальный флажок, и она становится невидимой и неприкосновенной для всякого там JavaScript'а. То есть никакой document.cookie её, сука, не достанет.
Зачем это, спросишь? А затем, ёпта, чтобы всякие мудаки, которые через XSS-атаки скрипты в страницы впихивают, не могли слить твои ценные печеньки! Представь, хранишь ты там сессионный ключ, а какой-нибудь пидарас шерстяной своим скриптом его выудит и — привет, твой аккаунт теперь его. А с HTTPOnly — хуй ему, а не кука. Украсть не сможет, хоть тресни.
Вот смотри, как это на сервере делается, например, на Node.js с Express:
res.cookie('sessionId', '12345', {
httpOnly: true, // Вот он, волшебный флажок! Всё, теперь эта кука — невидимка для JS.
secure: true, // Это чтобы только по HTTPS летала, тоже безопасность, ебать её в сраку.
sameSite: 'strict' // И это, чтобы со сторонних сайтов не приползала.
});
И что мы имеем в сухом остатке? Кука эта:
- Живёт только в HTTP-запросах. Серверу видна, браузер её шлёт, а вот JavaScript'у — ни-ни, нихуя.
- Прочитать или поменять её через код на странице — абсолютно невозможно. Прям вот ноль ебать.
- И да, все нормальные браузеры это поддерживают, не какие-то древние говнолисты.
Короче, если у тебя там что-то важное, типа токена авторизации или ID сессии — ты обязан, блядь, вешать httpOnly: true. Это не просто рекомендация, это, сука, вопрос гигиены, как мыть руки после улицы! Иначе потом будешь охуевать, откуда у тебя аккаунты угнали.