Требование пользовательской аутентификации

Как можно легко и эффективно аутентифицировать пользователей вашего сайта Web? Если вы используете систему, базирующуюся на Unix, следует использовать файлы .htaccess. Что такое файлы .htaccess? В каждой каталог внутри секретной области вашего сайта Web вы должны включить файл .htaccess, который ограничит доступ ко всем файлам или подкаталогам внутри данного каталога, в соответствии с созданным вами пароль- ным файлом. Вам не требуется повторно включать файл .htaccess в подкаталоги, но если вам понадобится еще больше ограничить доступ к некоторым подкаталогам, то вы должны создать отдельные файлы .htaccess внутри этих подкаталогов, с отдельными парольными файлами в каждом из них.

Шаг 1: Создание файла .htaccess

Для создания файла .htaccess вначале перейдите в каталог, который вы хотите защитить, В данном примере мы будем использовать каталог /home/httpd/html/secretwidget-society/ (иначе называемый каталогом secret-widget-society). В приведенном ниже примере строка [yows]# является приглашением на ввод команды серверу Ye Olde Widget Factory. [yows]# cd /hоme/httpd/htmI/secret-widget-society/

Теперь, используя свой любимый текстовый редактор, откройте для редактирования файл с именем .htaccess.

[yows]# vi .htaccess

Создайте свой файл в соответствии с ограничениями, которые вы хотите установить для этого каталога. В данном случае мы скроем свои пароли и входные имена в файле auth-secret-widget-society, хранимом в каталоге /home/widgets//

AuthType Basic
AuthName 'The Secret Widget Society'
AuthUserFile/home/widgets/auth-secret-widget-society
<Limit GET POST>
require valid-user

В нашем примере мы разрешили всем, кто перечислен в файле auth-secretwidgetsociety, получать доступ к вашему каталогу secret-widget-society/. Однако мы можем также ограничить доступ пользователям в соответствии с их именами доменов, именами хоста, IP-адресами, именами группы или именами пользователя. Например, представ- ленный ниже файл .htaccess ограничит доступ всем, кто попытается обратиться к ва- шему сайту из домена yeoldewidgetshoppe.com.

AuthType Basic
AuthName 'The Ye Olde Widget Shoppe Secret Widget Society'
AuthUserFile/home/widgets/auth-yowf-secret-widget-society
<Limit GET POST>
order deny, allow
deny from all
allow from .yeoldewidgetshoppe.com
require valid-user
</Limit>

Шаг 2: Создание парольного файла

Сейчас мы создадим парольный файл, используя команду htpasswd. Мы начнем с соз- дания входной учетной записи пользователя minnieme.

[yows]# htpasswd -c/home/widgets/auth-secret-widget-society
minnieme
Adding password for minnieme
New password: ilovedrevil
Re-type new password: ilovedrevil
[yows]#

Шаг 3: Добавление своего парольного файла

Для добавления нескольких пользователей к списку легальных пользователей в вашем файле htpasswd введите следующие данные в командную строку сервера:

[yows]# htpasswd /horne/widgets/auth-secret-widget-society bloomer
Adding password for bloomer
New password: noclap4tink
Re-type new password: noclap4tink
[yows]#

Заметьте, что здесь имеется только одно отличие от предыдущего файла: отсутствие в первой команде параметра -с, который принуждает создать новый файл. Если вы реши- те повторно создать файл auth-secret-widget-society, то вам следует создать новое вход- ное имя и пароль с помощью параметра -с.

Шаг 4: Тестирование ограничений доступа

Если вы откроете парольный файл /home/widgets/auth-secret-widgetsociety, то вы заме- тите, что пароли в нем хранятся в шифрованном виде. Эти пароли подвергаются тем же рискам, что и пароли в каталоге /etc/passwd. Если вы используете или создаете свою программу, которая позволяет пользователям добавлять в парольный файл новые вход- ные имена или изменять пароли доступа к каталогу secret-widget-society/, не забудьте протестировать целостность введенных паролей.

С этой целью откройте свой браузер Web и протестируйте ограничения доступа, введя следующий URL: http://www.yeoldewidgetshoppe.com/secret-widget-society/

Должен отобразится диалог, требующий ввести имя пользователя и пароль. На Рис. 28.1 представлен пример такого диалога. Попытайтесь применить имя пользователя minnieme и пароль ilovedrevil. Если диалог ввода пароля исчезнет, и отобразится стра- ница Secret Widget Society, вы добились успеха.

Puc. 28.1. Диалог аутентификации пользователей по файлам htaccess Попытайтесь войти в каталог еще раз, введя некорректное имя пользователя и/или не- корректный пароль, и убедитесь, что доступ не предоставляется. На Рис. 28.2 представ- лен диалог с сообщением об ошибке входной аутентификации.

Продолжение темы:

Полезная информация