Паролювання директорій, Developer Notes
Tag Паролювання директорій
.htaccessможна також використовувати для встановлення пароля на доступ до певних папок, файлів та груп файлів. Наведемо робочий приклад, а потім пояснимо весь вміст:
Даний файл потрібно покласти в директорії, на яку ми хочемо поставити пароль.
ДирективаAuthNameвиводить повідомлення при запиті пароля, все повідомлення необхідно писати в один рядок, синтаксис директиви тривіальний:
ДирективаAuthTypeвибирає тип автентифікації. Можливі такі типи:BasicабоDigest. Другий може не підтримуватись деякими браузерами, тому користуватися ним не рекомендується.
AuthUserFileвказує ім'я файлу з паролями для автентифікації користувачів (паролі в цьому файлі будуть шифровані). Шлях до файлу з паролями задається щодо кореня веб-сервера. Зберігайте файл із паролями у папці, доступ до якої закритий для користувачів (бажано помістити файл поза ієрархією вашого веб-сайту).
Створити файл можна двома способами. Якщо у Вас встановлена операційна система сімействаWindows, ви можете завантажити звідси програму яка генерує даний файл. Або підключиться до сервера поSSH(інструкцію з підключення можна знайти тут) і скористатися утилітоюhtpasswd.
Запустившиhtpasswdбез параметрів, ми побачимо:
# htpasswd Usage: htpasswd [-cmdps] passwordfile username htpasswd -b[cmdps] passwordfile username password -c Create a new file. beget@ginger
Тут не будуть розглядатися всі параметри цієї команди, але ви можете прочитати подробиці, запустившиhtpasswdуunix shellабо ознайомившись з відповідною сторінкою документації по Apache.
Отже, спочатку ми ще не маємо файлу з паролями і нам потрібно його створити:
# htpasswd -c authfile test1 New password: Re-type new password Adding password for user test1 beget@ginger
Тут не будуть розглядатися всі параметри цієї команди, але ви можете прочитати подробиці, запустившиhtpasswdуunix shellабо ознайомившись з відповідною сторінкою документації по Apache.
Після виконання цієї операціїhtpasswdстворить файлpasswords, в якому виявиться користувачtest1та його пароль у зашифрованому вигляді:
А зараз ми хочемо додати ще одного користувача. Оскільки файл з паролями ми вже маємо, ми просто не будемо використовувати ключ '-c' :
# htpasswd .authfile test2 New password: Re-type new password: Adding password for user test2 beget@ginger
$cat .authfile test1:zgco1KREjBY8M test2:eN3uA6t0kzV1c beget@ginger
Повернемося до опису директив паролювання директорій. ДирективаRequireвизначає користувачів, які можуть отримати доступ
Вказуючиvalid-user, ви дозволяєте доступ всім користувачам, переліченим у файлі паролів.
Наведемо приклад для доступу певних користувачів із файлу з паролями.htpasswd
Так само як і з забороною доступу по IP тут можна використовувати розширення нижче наведено два приклади: встановлення пароля на групу файлів і один певний файл.
Слід пам'ятати, що при такому обмеженні доступу паролі передаються каналами зв'язку у відкритому вигляді і за певних обставин можуть бути перехоплені зловмисниками. Тому з метою безпеки рекомендується організовувати доступ до закритих областей веб-сайту через захищенеSSL-з'єднання.
Розбираємось із файлом .htaccess
htaccess— файл додаткової конфігурації веб-сервераApache, а також подібних до нього серверів. Дозволяє задавати велику кількість додаткових параметрів та дозволів для роботи веб-сервера в окремих користувачів (а також на різних папках окремих користувачів), таких як керований доступ до каталогів, перепризначення типів файлів і т.д., не надаючи доступу до головного конфігураційного файлу тобто. не впливаючи на роботу всього сервісу.
.htaccessє подібністюhttpd.confз тією різницею, що діє тільки на каталог, в якому розміщується, та на його дочірні каталоги. Можливість використання.htaccessє у будь-якому каталозі користувача.
Файл.htaccessможе бути розміщений у будь-якому каталозі. Директиви цього файлу діє на всі файли в поточному каталозі та у всіх його підкаталогах (якщо ці директиви не перевизначені директивами нижченаведених файлів.htaccess).
Директиви.htaccessнадають користувачеві широкий вибір можливостей щодо налаштування свого сайту, список усіх доступних директив можна переглянути тут. Нижче я опишу тільки найзатребуваніші (на мій погляд) директиви: