Page 183 - 4636
P. 183
Також необхідно задати, кому дозволений доступ. Можна вказати певних користувачів, певні
групи або, як у даному прикладі, усіх санкціонованих користувачів.
Рядок
require valid-user
визначає, що доступ дозволений усім користувачам, що успішно пройшли аутентифікацію.
Кожний рядок у файлі . htpass містить ім'я користувача й зашифрований пароль, розділені
двокрапкою.
Конкретний уміст цього файлу може бути різним. Щоб створити такий файл, скористайтеся
невеликою програмою htpasswd, яка поставляється разом із сервером Apache.
Цю програму можна використовувати одним із двох наступних способів:
htpasswd [-cmdps] файл_пароля імена_користувача
або
htpasswd -b[cmdps] файл_пароля імена_користувача пароль
Єдиним ключем, який буде потрібно вказати, є -с. Цей ключ указує програмі htpasswd, що
потрібно створити новий файл. Використовуйте цей аргумент для створення першого користувача.
Будьте уважні й не застосовуйте його для наступних користувачів, оскільки якщо файл уже існує, то
програма htpasswd вилучить його й створить новий файл із тим же іменем.
Необов'язкові ключі m, d, р, і s слід застосовувати для вибору алгоритму шифрування
(включаючи відмову від шифрування).
Ключ b указує, що пароль передається як параметр, а не запитується окремо. Цей аргумент
корисний для запуску програми htpasswd у неінтерактивному режимі, у якості частини командного
файлу, але його не слід використовувати при виклику програми з командного рядка.
Для створення файлу, показаного в лістингу 9.7, використовувалися наступні команди:
htpasswd -be /home/book/.htpass userl passl htpasswd -b
/home/book/.htpass user2 pass2 htpasswd -b /home/book/.htpass user4 pass3
htpasswd -b /home/book/.htpass user4 pass4
Якщо програма htpasswd відсутня у поточному шляху, буде потрібно вказувати повний шлях до
цієї програми. У більшості систем htpasswd зберігається в каталозі /usr/local/apache/bin.
Аутентифікацію такого типу легко налаштувати, однак з нею зв'язано кілька проблем. Імена й
паролі користувачів зберігаються в текстовому файлі. Щораз, коли браузер запитує файл, захищений
за допомогою .htaccess, сервер повинен проаналізувати цей файл, а потім ще й файл пароля, щоб
знайти відповідне ім'я користувача й пароль. Замість файлу .htaccess те ж саме можна вказати у файлі
httpd.conf — головному файлі конфігурації веб-сервера.
На відміну від .htaccess, який аналізується при кожному запиті, файл httpd.conf проглядається
тільки в момент запуску сервера. Подібний підхід прискорить обробку запитів, але для внесення змін
прийде зупинити й запустити знову сервер.
Незалежно від місця зберігання директив сервера, файл паролів аналізується при кожному запиті.
Це означає, що подібно іншим розглянутим технологіям, у яких використовується двовимірний файл,
даний метод не підходить при наявності сотень або тисяч відвідувачів.
Використання аутентифікації за допомогою mod_auth_mysql
Як уже згадувалося раніше, можна легко й ефективно використовувати модуль mod_ auth сервера
Apache. Однак цей модуль не дуже підходить для завантажених сайтів з більшою кількістю
користувачів, оскільки mod_auth зберігає інформацію про користувачів у текстовому файлі.
На щастя, модуль modauth mysql поєднує в собі майже таку ж простоту застосувань, як і для
модуля mod_auth, і швидкість роботи баз даних. Він працює подібно mod_auth, але завдяки
використанню бази даних Mysql замість текстового файлу, він здатний швидше робити пошук у
більших списках користувачів.
Щоб використовувати цей модуль, його слід скомпілювати й установити, або попросити зробити
це системного адміністратора.
180