Що таке HttpOnly cookie?
HttpOnly cookie - це cookie з прапорцем безпеки, яке недоступне з JavaScript у браузері.
Простіше кажучи: HttpOnly cookie не можна прочитати чи змінити через JavaScript-код на сторінці.
Навіщо потрібен HttpOnly
Основна мета - захист від XSS-атак.
Якщо на сайті є вразливість і зловмисник впровадить JavaScript-код, то:
- звичайні cookie можна вкрасти
- HttpOnly cookie вкрасти через JavaScript не можна
Це дуже важливо для захисту авторизації.
Як це працює
- Сервер надсилає cookie з прапорцем HttpOnly
- Браузер зберігає cookie
- Браузер:
- надсилає cookie серверу при HTTP-запитах
- не дає JavaScript доступу до cookie
Cookie працює, але прихований від JS.
Що можна і не можна робити з HttpOnly cookie
Можна:
- використовувати для сесій
- використовувати для токенів авторизації
- автоматично надсилати на сервер
Не можна:
- прочитати через
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-атак.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.