Наложение пароля на директорию сайта
С помощью файла .htaccess можно запретить доступ к любому разделу сайта. Это конфигурационный файл апаче (файл управления доступом). Его действие распространяется на папки и подпапки в которых он находится. В конфигурационном файле сервера httpd.conf есть директива
|
AuthType Basic
AuthName "Protected realm" AuthUserFile /home/localhost/.htpasswd AuthGroupFile /home/localhost/group Require valid-user Require group Group1 |
Вторая строка имя защищённой зоны AuthName это имя отображается в заголовке окна для ввода логина и пароля. Лучше давать английское наименование, с русским шрифтом могут быть проблемы.
Следующая строка директива AuthUserFile определяет полный (абсолютный) путь к файлу паролей относительно сервера. Не сайта, а именно сервера. Не ошибайтесь. Чтоб узнать правильный путь для директивы нужно сделать в текстовом редакторе php-файл с запросом <? phpinfo() ?> и запустить его на хосте. В браузере отобразится таблица с переменными и их значениями. В столбике Variable будет строка DOCUMENT_ROOT или _SERVER["DOCUMENT_ROOT"] . Напротив значение и указан полный путь к домашней директории.
Следующая директива применяется по надобности AuthGroupFile. Если к защищённой зоне имеют доступ большое количество человек, удобно распределить их по группам, допустим: Пользователи, Личности внушающие доверие, Модераторы .)
Group1: user1 user2 user3
Group2: user1 user2 user3
Здесь GroupN - это название группы, а userN - имя пользователя соотвесссно.
Далее можно применять команду Require которая определяет пользователей или группу, которым разрешён вход в защищённую зону. Опция valid-user разрешает доступ всем, кто в списке auth-файла. Если необходимо сделать доступ только некоторым пользователям из списка, пропишите такую строку
Require user test1 test2
в этой строке test1 test2 и т.д. - имена разрешённых пользователей. С группами поступать также.
Файл .htaccess нужно помещать в ту директорию, к которой планируется защита. Если такой файл существует, просто пропишите нужные директивы аутентификации в этот файл.
|
<Files .htpasswd>
deny from all </Files> |
user:password
…
user:password
Желательно ещё зашифровать пароли и логины в MD5 - хэше. Поскольку хранить их в исходном виде на сервере, к которому есть доступ ещё нескольких человек не благоразумно.
Обычно всё это предоставляет хостер и в панели администрирования есть функции защиты доступа к директориям.