Skip to main content
CheckTown
Інструменти

htpasswd Generator: Apache and Nginx Basic Authentication

Опубліковано 5 хв читання
У цій статті

Що таке htpasswd?

Файл htpasswd — це база даних у вигляді текстового файлу, яку використовують веб-сервери Apache та Nginx для зберігання імен користувачів та хешів паролів для HTTP Basic Authentication. Кожен рядок містить ім'я користувача та хеш пароля, розділені двокрапкою, наприклад admin:$2y$10$abc... Файл забезпечує простий спосіб захисту веб-ресурсів без потреби у повноцінній системі автентифікації.

Утиліта htpasswd спочатку була частиною проєкту Apache HTTP Server, але формат файлу став стандартом де-факто, який підтримують багато веб-серверів, зворотних проксі та інструментів розробки. Сучасні генератори htpasswd підтримують кілька алгоритмів хешування, включаючи bcrypt, SHA-1 та MD5, причому bcrypt є рекомендованим вибором для безпеки.

Як працює генерація htpasswd

Генерація запису htpasswd полягає у хешуванні текстового пароля обраним алгоритмом та форматуванні його разом з іменем користувача. Стійкість отриманого хешу залежить від алгоритму та його налаштувань.

  • bcrypt ($2y$) — найбезпечніший варіант, використовує налаштовуваний фактор вартості (за замовчуванням 10), який контролює обчислювальну складність кожного хешу, роблячи атаки грубою силою непрактичними
  • SHA-1 ({SHA}) — створює дайджест SHA-1 у кодуванні Base64 з префіксом {SHA}; швидший за bcrypt, але значно слабший проти сучасних GPU-атак
  • MD5 ($apr1$) — власний варіант MD5 від Apache з випадковою сіллю; застарілий формат, який досі підтримується, але не рекомендується для нових розгортань через відомі вразливості

Спробуйте безкоштовно — реєстрація не потрібна

Згенерувати запис htpasswd →

Поширені способи використання htpasswd

Автентифікація на основі htpasswd широко використовується для легкого контролю доступу, коли повноцінна система автентифікації була б надмірною.

  • Захист тестових середовищ — обмежити доступ до передвиробничих середовищ, щоб лише члени команди та зацікавлені сторони могли переглядати поточну роботу
  • Безпека панелі адміністратора — додати додатковий рівень автентифікації перед панелями адміністрування CMS, інструментами управління базами даних або моніторинговими дашбордами
  • Доступ до середовища розробки — захистити локальні або спільні сервери розробки від несанкціонованого доступу без налаштування OAuth або LDAP

Поширені запитання

Який алгоритм використовувати для htpasswd: bcrypt, SHA-1 чи MD5?

Завжди використовуйте bcrypt, коли це можливо. Bcrypt спеціально розроблений для хешування паролів з налаштовуваним фактором вартості, що робить його стійким до атак грубою силою. SHA-1 та MD5 — це швидкі хеш-функції, не призначені для паролів — їх можна зламати на порядки швидше, ніж bcrypt.

Де розмістити файл htpasswd на сервері?

Зберігайте файл htpasswd поза кореневою директорією вебу, щоб запобігти його передачі відвідувачам. Типове розташування — /etc/apache2/.htpasswd або /etc/nginx/.htpasswd. Потім вкажіть його у конфігурації сервера за допомогою AuthUserFile (Apache) або auth_basic_user_file (Nginx). Ніколи не розміщуйте його в публічно доступній директорії.

Чи достатньо безпечна HTTP Basic Authentication для продакшену?

Basic Authentication надсилає облікові дані у кодуванні Base64 (не зашифровані) з кожним запитом, тому завжди має використовуватися через HTTPS. Навіть з HTTPS їй бракує таких функцій, як управління сеансами, обмеження швидкості та блокування облікового запису. Вона підходить для сценаріїв з низьким ризиком, як-от тестові сайти або внутрішні інструменти, але автентифікація користувачів у продакшені має використовувати повноцінну систему з сеансами на основі токенів.

Пов'язані інструменти