Полезни съвети

Какво всъщност прави HttpOnly при бисквитките?

В уеб сигурността детайлите често решават всичко. Един привидно малък флаг като HttpOnly може да бъде границата между обикновена страница и компрометиран акаунт.

Защо този флаг има значение?

Когато дадена бисквитка е маркирана като HttpOnly, браузърът забранява достъпа до нея чрез JavaScript. Тя продължава да се изпраща със заявките към сървъра, но клиентските скриптове не могат да я прочетат или модифицират.

Това предпазва от XSS атаки, при които злонамерен скрипт се инжектира в страницата и опитва да открадне сесийни или „remember me“ бисквитки. А, ако атакуващият получи такава бисквитка, той ефективно поема контрол над сесията на жертвата.

С други думи — ако чужд скрипт се промъкне във вашия фронтенд, HttpOnly може да е последната ви защита срещу пълно компрометиране на потребителски акаунти.

Добрата новина?

Много съвременни фреймуърци и CMS-и по подразбиране включват HttpOnly за сесийните бисквитки. Това е една от причините да избираме платформи с добри security defaults — защото някои неща трябва просто да работят сигурно от първия ден, дори и да не знаем за съществуването им.

Разбира се, има изключения. Например при CSRF токените, които трябва да бъдат достъпни за JavaScript, HttpOnly не се използва умишлено. Но за сесии и автентикационни бисквитки – няма причина да го изключвате.

Какво да запомним?

  • HttpOnly прави бисквитките невидими за JavaScript, защитавайки ги от XSS

  • Винаги го използвайте за сесийни и „remember me“ бисквитки

  • Изключвайте го само ако наистина ви трябва достъп от JavaScript (рядко и рисково)

  • Избирайте технологии с добри настройки, свързани със сигурността, зададени по подразбиране (виж по-долу)

Как да изберете „сигурен по подразбиране“ фреймуърк?

Не всичко трябва да се изгражда ръчно. Добре подбраният фреймуърк може да осигури силен старт още от първата заявка.

Търсете „secure by default“

  • Сесии с HttpOnly и Secure (при HTTPS)

  • Активна CSRF защита

  • Лесна настройка на CSP

  • Валидиране на входа и escaping на изхода

Laravel и WordPress го правят — ако знаете къде да пипнете.

Проверете документацията

Търсете секции като Security, Best Practices, Hardening Guide. Ако липсват — проблем.

Разгледайте настройките

  • Гледайте Set-Cookie заглавки

  • Тествайте поведение при XSS и CSRF

  • Прегледайте конфигурацията — ще усетите нивото на внимание към сигурността

Питайте и ще ви се отговори

Потърсете “security issues in [framework]” — ще разберете много повече, отколкото от маркетинг страница.

HttpOnly не е сложна настройка. Но тя може да спре сложна атака. Проверете дали я използвате.

Покажи още
Back to top button