Автор статьи: Головин Андрей
ВНИМАНИЕ!!! Все, что здесь написано имеет отношение к безопасности вашего веб-сервера. Вся ответственность за любое использование приведенных здесь сведений ложиться на вас! Автор ответственности не несет! Перед использованием проконсультируйтесь с администратором вашего сервера!!!
Все сведения проверены на сервере Apache 1.3.9 WIN32 и могут отличаться для других серверов и версий!
?Иногда возникает необходимость ограничить доступ пользователей к некоторым ресурсам, расположенным на вашей странице. Как это сделать?
Необходимый инвентарь: домашняя страничка, размещенная на серевере под управлением Apache, программа htpasswd.exe (она имеется в поставке Апача в подкаталоге bin), любой текстовый редактор, несколько бутылок пива для администратора, так как, скорее всего, без его (адмнистратора) помощи тут не обойтись, несколько бутылок пива для себя (с пивом будет легче разобраться).
Приступим. В конфигурационных файлах сервера должно быть указано, что возможно изменение директив аутентификации посредством файлов доступа (обычно это .htaccess). Здесь вам потребуется пиво, припасенное для администратора, так как только он имеет возможность, что-то изменить в конфигурационных файлах на удаленном сервере. Если ваш администратор, после выпитого пива, будет говорить, что это очень сложно, то ему надо сказать, что в конфиге надо прописать следующие строчки:
…
<Directory >/путь/до/вашей/странички>
…
AllowOverride AuthConfig
AccessFileName /путь/до/вашей/странички/.htaccess
…
</Directory>
…
<Files .ht*>
Order allow,deny
Deny from all
</Files>
…
Теперь вы имеете возможность изменять способ доступа к отдельным директориям своей странички без покупки пива администратору. Для этого запускаем программу htpasswd.exe следующим образом:
htpasswd -c -b .htpasswd username password
После чего, с радостью, наблюдаем появившийся файл с именем .htpasswd. Заглядывать внутрь не рекомендую, так как никакой полезной информации вы оттуда не вытащите (если, только, вы не собираетесь украсть свой собственный пароль в зашифрованном виде). Далее, чтобы добавить нового пользователя, необходимо опустить ключ -с.
Далее в любом текстовом редакторе (только не Microsoft Word) создаем файл .htaccess, содержащий следующие магические заклинания:
AuthType Basic
AuthName «Dark Zone»
AuthUserFile «/путь/до/вашей/странички/.htpasswd»
require valid-user
AuthType — задает тип аутентификации пользователей (basic — это все, что нам надо). AuthName — задает имя закрываемого ресурса. Это имя будет выведено в окне аутентификации: Enter username and password for Dark Zone — в данном случае. AuthUserFile — имя файла с паролями и именами пользователей. В принципе, его (файл) можно разместить за пределами каталогов, к которым разрешен доступ извне. Если вы не имеете такой возможности (не хватило пива для администратора), то размещайте его где угодно, но не забудьте про директиву «Files .ht*», я вас предупредил! require — сообщает серверу, кого допускать до каталога. Возможные значения: valid-user — пользователь, прописанный в .htpasswd и указавший правильный пароль; имя пользователя — только пользователь с указанным именем; group «группа» — только пользователь из указанной группы. В общем случае, директива require позволяет прописать правила доступа с точностью до пользователя. Для этого, вместо valid-user, необходимо прописать имя пользователя.
Теперь помещаем эти два файла в соответствующие директории. Напоминаем администратору сервера, что было-бы совсем не плохо перегрузить сервер и идем браузером в этот каталог.
Если вы будете экспериментировать на локальном сервере, то вам придется, после каждого изменения конфигурации, перезапускать браузер, так как многие из них кэшируют пароли и запроса на имя пользователя и пароль вы можете не увидеть.