Как поставить пароль на раздел (директорию, папку) сайта

Опубликовано: 22 октября 2017
Раздел(ы): Вебмастеру
Просмотры: 7975
Комментарии: 0

Бывают случаи, когда нужно ограничить доступ пользователей к определенной папке на сайте (разделу сайта) и пускать туда посетителей только по паролю. Например, в раздел администратора. В этой статье я приведу инструкцию когда в качестве веб-сервера вы используете Apache.

Как настроить доступ по паролю

Во-первых, необходим файл с кодами авторизации, который содержит имена пользователей и их пароли. Во-вторых, необходимо указать веб-серверу, что доступ к этому разделу сайта (папка, директория) возможен только авторизованным пользователям.

Параметры файла .htaccess

Настройка доступа к папке по паролю в веб-сервере Apache производится в служебном файле .htaccess. Этот файл должен находиться в той папке для которой мы настраиваем ограничения. Иными словами, инструкции из файла .htaccess распространяются на ту папку, в которой этот файл расположен.

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

AuthType Basic
AuthName "WellCome"
AuthUserFile "/home/username/data/.htpasswd"
Require valid-user

Где,
AuthName — это приветствие, которое увидят посетители, вы можете изменить его на свое,
AuthUserFile — полный путь к файлу паролей от корня диска, у вас должен быть свой (не путать с адресом запароленной директории).

Файл .htpasswd нужно размещать вне папок сайта, чтобы к нему не было доступа из интернета.

Формат файла .htpasswd

Файл состоит из строк, в каждой из которых содержатся пары логин и хеш пароля. Логин отделяется от хеша двоеточием. Пример содержимого файла:

Admin:$apr$Gg/NNV$2OIMrVrviCk
User1:gbDwY2f5$GMrVrvW6qgbDwY

Как создать файл .htpasswd

Так как файл .htpasswd не содержит пароль в открытом виде, а лишь его хеш, то внести изменения в этот файл вручную с помощью обычного текстового редактора не получится. Нужно использовать специальную утилиту. В линукс системах для работы с файлом паролей используется утилита htpasswd, входящая в состав дистрибутива веб-сервера Apache. Я писал о ее использовании в этой статье.

Чтобы создать файл с паролями .htpasswd и добавить пользователя используйте команду:

# htpasswd -c /home/username/data/.htpasswd NewUser

Если файла .htpasswd уже существует, то исключите ключ -c:

# htpasswd /home/username/data/.htpasswd NewUser

Здесь:
/home/username/data/.htpasswd — это полный путь от корня диска к файлу с паролями, а
NewUser — имя пользователя.

При вводе команды вам будет предложено указать пароль, а затем подтвердить его, то есть ввести пароль нужно будет два раза.

С помощью этой утилиты, так же можно изменить уже присвоенный пользователю пароль, то есть изменить пароль для существующего пользователя.

Проверка работы .htpasswd

Если вы все сделали правильно, то при посещении запароленной папки (раздела на сайте), вы должны увидеть примерно следующее уведомление:

Как поставить пароль на раздел (директорию, папку) сайта

При вводе неправильных данных вы получите стандартное сообщение о 401-й ошибке (несанкционированный доступ, посетитель не авторизован), а при корректных данных — доступ к закрытому разделу сайта.

Благодарности

При написании статьи были использованы следующие источники:

  1. http://s-engineer.ru/kak-zaparolit-direktoriyu-v-apache/
  2. https://ru.wikipedia.org/wiki/.htpasswd

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных", на условиях и для целей определенных политикой конфиденциальности сайта.
© Юрий Рассадников, 2011 - 2024
uptime узнать
Домен : reg.ru
Хостинг : adman.com
SQL - 6 | 0,175 сек. | 8.33 МБ