Усі статті

Basic Authentication: як найпростіший спосіб автентифікації працює в HTTP

HTTP Basic Authentication — один із найстаріших і найпростіших способів захистити ресурс паролем: браузер запитує логін і пароль, і вони передаються на сервер у складі кожного запиту. Простота цього механізму водночас є і його головною слабкістю.

Як формується заголовок Authorization

Логін і пароль об'єднуються через двокрапку (логін:пароль), після чого весь рядок кодується Base64 і додається в заголовок Authorization: Basic <закодований_рядок>. Браузер автоматично додає цей заголовок до кожного наступного запиту після першої успішної автентифікації.

Чому Base64 — це не безпека

Base64 — це схема кодування, а не шифрування: будь-хто може декодувати рядок назад у вигляд логін:пароль за секунди, без жодного ключа чи пароля. Якщо запит перехопити (наприклад, через незахищене Wi-Fi з'єднання), облікові дані стають миттєво доступні зловмиснику.

Чому HTTPS обов'язковий

Оскільки Base64 не приховує дані криптографічно, безпека Basic Auth повністю залежить від шифрування транспортного рівня — тобто від HTTPS. Без TLS-з'єднання Basic Auth передає облікові дані практично у відкритому вигляді, тож використовувати цей механізм по звичайному HTTP категорично не можна.

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

  • Швидко захистити паролем staging-сервер чи внутрішній інструмент на етапі розробки.
  • Сформувати правильний заголовок Authorization для тестування API вручну через curl чи Postman.
  • Зрозуміти, чому Basic Auth без HTTPS вважається серйозною вразливістю безпеки.

У Basic Auth немає штатного механізму виходу

Браузер кешує облікові дані й автоматично додає заголовок Authorization до кожного наступного запиту на той самий origin, доки вкладку не буде закрито — стандартної кнопки "вийти" протокол не передбачає. Щоб примусово "розлогінити" користувача, сервери йдуть на хитрощі: навмисно повертають 401 із іншим значенням realm або очікують, що користувач сам закриє всі вкладки браузера.

Спробувати інструмент