Паролювання директорій, 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надають користувачеві широкий вибір можливостей щодо налаштування свого сайту, список усіх доступних директив можна переглянути тут. Нижче я опишу тільки найзатребуваніші (на мій погляд) директиви: