Наложение пароля на директорию сайта

С помощью файла .htaccess можно запретить доступ к любому разделу сайта. Это конфигурационный файл апаче (файл управления доступом). Его действие распространяется на папки и подпапки в которых он находится. В конфигурационном файле сервера httpd.conf есть директива она и определяет файл .htaccess. В файл .htaccess нужно ввести некоторые команды (директивы) по которым сервер поймёт, что нужно делать:

AuthType Basic
AuthName "Protected realm"
AuthUserFile /home/localhost/.htpasswd
AuthGroupFile /home/localhost/group
Require valid-user
Require group Group1

Первая строка Auth Type Basic определяет самый распространённый тип аутентификации. При попытке войти в защищённую зону браузер получает 401 authentication required и после этого появляется окно ввода логина и пароля. После удачной сверки юзеру открывается доступ и посылается на браузер переменная в которой обозначена область действия.

Вторая строка имя защищённой зоны 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 нужно помещать в ту директорию, к которой планируется защита. Если такой файл существует, просто пропишите нужные директивы аутентификации в этот файл.

Аутентификационный файл .htpasswd
Путь к нему показывает директива AuthUserFile . Разместив файл .htpasswd выше корня сайта нужно в каталоге, где расположен файл с паролями добавить в файл .htaccess такие строки
<Files .htpasswd>
deny from all
</Files>
Тут команда deny from all запрещает доступ к файлу .htpasswd , тэги определяют область действия директивы. Файл паролей должен иметь такой вид:

user:password

user:password

Можно создать в любом текстовом редакторе. Имя может быть любое но желательно всё таки делать .htpasswd потому что сервер Apache в файле httpd.conf изначально защищает файлы у которых начало .ht от просмотра.

Желательно ещё зашифровать пароли и логины в MD5 - хэше. Поскольку хранить их в исходном виде на сервере, к которому есть доступ ещё нескольких человек не благоразумно.

Обычно всё это предоставляет хостер и в панели администрирования есть функции защиты доступа к директориям.
Реклама
Лучше приобрести недорогие ноутбуки в интернет-магазине АЛЛО.элитные зажигалки для сигарет