В этом уроке я расскажу Вам, как защитить админку с помощью файла .htaccess
AuthName "Текст выводится в окне авторизации"
AuthType Basic
AuthUserFile абсолютный/путь/к/файлу/.htpasswd
require valid-user
AuthName – текст содержащийся в данной директиве, выводится в окне ввода пароля. Он должен быть написан в одну строку и заключен в двойные кавычки.
AuthType - типы аутентификации: Basic или Digest. Рекомендуется использовать первый, т.к. второй поддерживается не всеми браузерами.
AuthUserFile - полный путь к файлу с логинами и паролями, для аутентификации пользователей. Пароли содержаться в шифрованном виде. Рекомендуется хранить данный файл в папке, к которой нет доступа для пользователей, это необходимо, чтобы предотвратить кражу паролей.
require valid-user – директива предписывает, что к URL получают доступ только, пользователи, успешно прошедшие аутентификацию.
Где можно реализовать?Авторизацию можно прикрутить к любой директории вашего сайта, будь то корень, либо папка из иерархии. Очень часто можно встретить защиту с помощью .htaccess, для входа в “Панель управления” сайтом. Также с помощью этой технологии можно ограничить доступ к папкам, где лежат конфиденциальные данные.
Итак, давайте создадим директорию с названием CMS (можете выбрать любое название). В ней будут находиться: файл конфигурации .htaccess и файл с паролями .htpasswd., а также все остальные файлы и папки, к которым вы хотите сделать ограниченный доступ.
Таким образом, готовый файл .htaccess, будет содержать следующие директивы:
AuthName "Authentication"
AuthType Basic
AuthUserFile Z:/home/localhost/www/scripts/CMS/.htpasswd
require valid-user
Создание файла .htpasswdПереходим к созданию файла с паролями . htpasswd, для этого воспользуемся утилитой htpasswd.exe. Работать с которой нужно через командную строку. Далее рассмотрены примеры работы с утилитой:
• Создать новый файл с паролями, назначить ему имя .htpasswd, задать шифрование паролей по алгоритму MD5 и добавить в него логин admin:
htpasswd -cm .htpasswd admin
-cm - ключи утилиты:
-с – указывает, что необходимо создать новый файл
-m –шифрует пароли по алгоритму MD5
.htpasswd – имя файла с паролями
admin – логин
• Добавить в уже существующий файл с паролями нового пользователя. Для этого нужно в команде указать один ключ –m, ключ –c, опустить:
htpasswd -m .htpasswd user
• Чтобы изменить пароль для существующего пользователя, используйте ту же команду, что и при добавлении.
htpasswd -m .htpasswd user
После создания файла с паролями, поместите его в директорию, путь к которой указан в директиве AuthUserFile файла .htaccess. (в нашем случае в папку CMS)Доступ к данным авторизации, через переменные массива $_SERVERПосле успешного прохождения аутентификации, логин и пароль, вбитые пользователем, помещаются в суперглобальный массив$_SERVER, который можно обрабатывать с помощью php скрипта.
$_SERVER["PHP_AUTH_USER"] – логин;
$_SERVER["PHP_AUTH_PW"] – пароль;
Результат
Теперь если вы перейдете в браузере в папку, где лежит конфигурационный файл .htaccess, вы получите всплывающее окно, где нужно вбить логин и пароль. При успешной авторизации доступ к папке будет открыт.
Скачать утилиту htpasswd.exe можно здесь. Скачать