Паролирование директорий на сайте

Автор: Topol Воскресенье, Апрель 15th, 2012 Нет комментариев

Рубрика: Программирование

Один из подписчиков рассылки «Разработка сайтов на php + mysql” обратился ко мне с просьбой помочь установить на своем сайте скрипт phpMyAdmin (для работы с базами mysql). Одна из рекомендаций, которые я ему дал, — закрыть паролем доступ к директории, в которую установлен пакет.
Многие веб-мастера сталкиваются с необходимостью ограничивать доступ к каким-либо данным на сайте, поэтому, возможность предоставления доступа к отдельным директориям по паролю весьма полезна. Например, можно закрыть паролем доступ к директории, где находится скрипт для администрирования сайта.
Сейчас практически на всех хостингах (бывают и досадные исключения) имеется возможность выполнять необходимые настройки через админпанели (скрипты для администрирования сайта – Cpanel, DirectAdmit, Plesk и др.) Хорошая админпанель предоставляет массу возможностей, в том числе и возможность паролирования директорий. Тем не менее, иногда приходится это делать вручную.

Для этого нам понадобится программа для создания файла паролей. Если на вашем компьютере установлен веб сервер apache, то эта программа у вас уже есть – htpasswd.exe (для Windows). Если нет, то вы можете скачать ее.

Создаем файл паролей
htpasswd.exe –c .htpasswd имя_пользователя

.htpasswd – стандартное имя файла паролей. Можно выбрать другое, однако я не вижу причин для этого. Тем более что на сайте могут быть выполнены настройки, запрещающие прямой доступ к файлу с именем .htpasswd.
Программа попросит вас ввести, и затем подтвердить пароль для этого пользователя. При вводе имени пользователя и пароля не используйте кириллицу.
При необходимости можно ввести несколько пользователей, только не используйте ключ –с
htpasswd .htpasswd другое_имя_пользователя

Допустим что директория вашего аккаунта на хостинге следующая
/home/username/
а корневая директория сайта
/home/username/html_doc

На сайте находится папка private — http://site.com/private, которую нужно закрыть паролем. Путь к этой директории на сервере следующий
/home/username/html_doc/private

Помещаем файл паролей в директорию
/home/username
Почему не в /home/username/ html_doc? Да потому что через сайт директория /home/username недоступна. Безопасности никогда не бывает много.

Теперь создаем в директории, которую нужно закрыть паролем файл .htaccess (конечно если его там нет) и вносим в него следующие строки:

AuthName “Private Direvtory”
AuthType Basic
<Limit GET POST PUT>
require valid-user
</Limit>
AuthUserFile /home/username/.htpasswd

Параметр AuthUserFile указывает на ваш файл паролей. Если вы дали файлу паролей другое имя или поместили в другую директорию, соответственно изменить эту строчку.

Пример работы можете посмотреть по этому адресу:
http://webcorp.ru/private

Логин – user
Пароль – 123

Вот собственно и все.

Источник: webcorp.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты