Skip to main content

Що таке HttpOnly cookie?

HttpOnly cookie - це cookie з прапорцем безпеки, яке недоступне з JavaScript у браузері.

Простіше кажучи: HttpOnly cookie не можна прочитати чи змінити через JavaScript-код на сторінці.


Навіщо потрібен HttpOnly

Основна мета - захист від XSS-атак.

Якщо на сайті є вразливість і зловмисник впровадить JavaScript-код, то:

  • звичайні cookie можна вкрасти
  • HttpOnly cookie вкрасти через JavaScript не можна

Це дуже важливо для захисту авторизації.


Як це працює

  1. Сервер надсилає cookie з прапорцем HttpOnly
  2. Браузер зберігає cookie
  3. Браузер:
  • надсилає cookie серверу при HTTP-запитах
  • не дає JavaScript доступу до cookie

Cookie працює, але прихований від JS.


Можна:

  • використовувати для сесій
  • використовувати для токенів авторизації
  • автоматично надсилати на сервер

Не можна:

  • прочитати через document.cookie
  • змінити через JavaScript
  • передати в сторонній JS-код

Часте питання на співбесіді

Якщо JavaScript не бачить HttpOnly cookie, як сервер впізнає користувача?

Відповідь: браузер сам надсилає cookie серверу при кожному запиті, JavaScript тут узагалі не потрібен.


HttpOnly + Secure, найкраща практика

Зазвичай HttpOnly використовують разом з іншими прапорцями:

  • HttpOnly - захист від XSS
  • Secure - передавання тільки по HTTPS
  • SameSite - захист від CSRF

Для сесійних cookie це стандарт.


Приклад з життя

HttpOnly cookie - це як:

  • перепустка, що лежить у закритій кишені
  • ти проходиш за нею автоматично
  • але не можеш показати її будь-кому

Коротка відповідь для співбесіди

Запам'ятай формулювання:

HttpOnly cookie - це cookie з прапорцем безпеки, яке недоступне для JavaScript і використовується для захисту чутливих даних, наприклад сесій, від XSS-атак.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.