Пароль на папку .htaccess
Лично я использую .htaccess для паролирования папок своего сайта. Хороший пароль – залог безопасности, это аксиома!
Для начала рассмотрим пример, а потом поясним что это значит:
AuthName «Protected area, need authorization»
AuthType Basic
AuthUserFile /home/t/test/.authfile
require valid-user
Данный файл нужно положить в ту директории, на которую мы хотим поставить пароль.
Директива AuthName выводит сообщение при запросе пароля, все сообщения необходимо писать в одну строчку, синтаксис директивы тривиален:
Директива AuthType выбирает тип аутентификации. Возможны следующие типы: Basic или Digest. Второй может не поддерживаться некоторыми браузерами, поэтому пользоваться им не рекомендуется.
AuthUserFile указывает имя файла с паролями для аутентификации пользователей (пароли в этом файле будут шифрованными). Путь к файлу с паролями задается относительно корня веб-сервера. Храните файл с паролями в папке, доступ к которой закрыт для пользователей — (желательно поместить этот файл вне иерархии вашего веб-сайта — это очень важный момент, так как сломать его будет достаточно тяжело, потому что всю ответственность за его безопасность Вы переложите на товарища Хостинг-провайдера с его фаерволами и системами защиты).
Создать данный файл можно двумя способами. Если у Вас установлена операционная система семейства Windows вы можете скачать отсюда программу которая генирирует данный файл. Либо подключится к серверу по SSH и воспользоваться утилитой htpasswd. Либо воспользоваться той же утилитой, входящей в поставку web-сервера Apache (в случае если он установлен, если нет качайте тут для Win), c помощью командной строки Windows ввести: htpasswd.exe -cm .htpasswd admin, где:
-cm – это команды на создание файла с использованием MD5;
.htpasswd – имя файла, который будет создан;
admin – имя пользователя.
После запуска Вам будет выдан запрос на ввод пароля и подтверждение. В результате будет создан файл .htpasswd примерно такого содержания:
admin:$apr1$9o0…..$3nAi6rAX1RtHDzL7PPW/i/
что соответствует логину – admin и паролю – password.
Кстати таким образом можно закрывать не только директории, но и отдельные файлы или группы файлов. При добавлении пользователя в существующий файл команду –cm нужно изменить на –m.
В случае подключения к серверу по SSH и использования утилиты htpasswd без параметров мы увидим:
kjan ~ # htpasswd
Usage:
htpasswd [-cmdps] passwordfile username
htpasswd -b[cmdps] passwordfile username password
-c Create a new file.
kjan ~ #
Здесь не будут рассматриваться все параметры этой команды, но вы можете сами прочитать подробности, запустив htpasswd в unix shell или ознакомившись с соответствующей страницей документации по Apache.
Итак, изначально у нас еще нет файла с паролями и нам нужно его создать:
kjan ~ # htpasswd -c authfile test1
New password:
Re-type new password
Adding password for user test1
kjan ~ #
После выполнения данной операции htpasswd создаст файл passwords, в котором окажется пользователь test1 и его пароль в зашифрованном виде:
kjan ~ $ cat .authfile
test1:zgco1KREjBY8M
kjan ~ $
А теперь мы хотим добавить еще одного пользователя. Так как файл с паролями у нас уже есть, мы просто не будем использовать ключ «-c» :
kjan~ # htpasswd .authfile test2
New password:
Re-type new password:
Adding password for user test2
kjan~ $ cat .authfile
test1:zgco1KREjBY8M
test2:eN3uA6t0kzV1c
kjan~ $
Вернемся к описанию директив паролирования директорий. Директива Require определяет пользователей, которые могут получить доступ
Require USER_NAME | valid-user
Указывая valid-user вы разрешаете доступ всем пользователям, перечисленным в файле паролей.
Приведем пример для доступа определенных пользователей из файла с паролями .htpasswd
AuthName «Protected area, need authorization»
AuthType Basic
AuthUserFile /home/t/test/.authfile
require Alexey Kondr Fenix
Так же как и с запретом доступа по IP здесь можно использовать расширение <Files> ниже приведены два примера: установки пароля на группу файлов и на один определенный файл.
<Files «passwd.html»>
AuthName «Protected area, need authorization»
AuthType Basic
AuthUserFile /home/t/test/.authfile
require valid-user
</Files>
<Files «\.(key)$»>
AuthName «Protected area, need authorization»
AuthType Basic
AuthUserFile /home/t/test/.authfile
require valid-user
</Files>
Следует помнить, что при таком ограничении доступа пароли передаются по каналам связи в открытом виде и при определенных обстоятельствах могут быть перехвачены злоумышленниками. Поэтому в целях безопасности рекомендуется организовывать доступ к закрытым областям веб-сайта через защищенное SSL-соединение.
З.Ы.: Разыскивается автор первоисточника!-) Если кто-то что-то слышал, или видел пишите в коммент…
Твитнуть
Спасибо за отличную иллюстрацию процесса паролирования. Хотя уже и сам дошёл по мануалам, но добавил в закладки на всякий случай
Очень подробный обзор! Автору респект! Если бы в универе все так подробно и с примерами преподавалось…
Долго искал эту инфу! Спасибо!
Что-то наподобие у меня уже месяц из головы не выходит!
Действительно очень хороший блог , хотя бы потому , что ничего выдумывать не нужно , смотри на инструкцию и делай ручками .
Добавил в закладки , спс автору.