На этой странице

Защита содержимого папки паролем


Чтобы ограничить доступ определенной папке можно с помощью следующих директив:

AuthType – Задает тип аутентификации .

Параметр Basic указывает на базовую аутентификацию по имени пользователя и паролю :

AuthType Basic

AuthName – Определяет текст , который будет отображен во всплывающем окне запроса:

AuthName "Restricted area"

AuthUserFile – Указывает местоположение файла паролей:

AuthGroupFile – Определяет местоположение файла групп.

Require – Задает дополнительные требования , которые должны быть выполнены для предоставления доступа . Могут быть указаны следующие параметры.

valid-user – доступ предоставляется любому пользователю , имя которого задано в файле , указанном директивой AuthUserFile , при условии правильно введенного пароля .

user – доступ разрешается только указанным пользователям.

group – доступ разрешается только указанным группам пользователей.

Ограничить доступ к определенной папке можно двумя способами :

Добавить код в файл конфигурации сервера (httpd.conf) и при помощи раздела <Directory> необходимо указать путь к защищенной папке :

<Directory "${SRVROOT/htdocs/test">
AuthType Basic
AuthName "Restricted area"
AuthUserFile "c:/WebServer/home/pass/pass.conf"
<Limit GET POST>
Require valid-user
</Limit>
</Directory>

Создадим папку pass в каталоге c:/WebServer/home/ где мы создадим сам файл pass.conf , как это сделать будет описано далее .

Создадим файл .htaccess с помощью текстового редактора .

Разместив в защищаемой файл .htaccess с такими директивами :

AuthType Basic
AuthName "Restricted area"
AuthUserFile "c:/WebServer/home/pass/pass.conf"
<Limit GET POST>
Require valid-user
</Limit>

На виртуальном хостинге доступен только второй способ , предлагающий использование файла .htaccess . На своем локальном локальном компьютере необходимо включить поддержку этого файла в главном файле конфигурации, так как по умолчанию использование файла .htaccess запрещено , мы это уже проделали когда настраивали , но поверим еще раз . Для этого находим раздел в файле конфигурации httpd.conf находится по адресу  c:\WebServer\WAMP\Apache24\conf\ и откройте файл httpd.conf в любом текстовом редакторе.

Для этого находим раздел - строка 252.

Раздел :

<Directory "${SRVROOT}/htdocs">
…
</Directory>

Внутри раздела отыскиваем строку – 272.

AllowOverride None

И заменим их на:

AllowOverride All

Сохраняем файл и перезагружаем сервер Apache ,чтобы теперь создадим сам файл .htaccess , откроем Notepad ++ и набираем код :

AuthType Basic
AuthName "Restricted area"
AuthUserFile "c:/WebServer/home/pass/pass.conf"
<Limit GET POST>
Require valid-user
</Limit>

Сохраняем набранный файл с расширением .htaccess в каталоге c:\WebServer\home\www\test\, Далее создадим в каталоге www\ папку test , и в ней создадим файл index.html.

Содержимое файла index.html


<!doctype html>
<html lang="ru">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Заищенная папка</title>
    <style type="text/css">
@media screen and (max-width: 767px) {
body {
    max-width: 767px;
    height: auto;
}
}
body {     /* Стиль для всего документа */
     font-size: 12pt;     /* Размер шрифта */
     font-family: "Verdana", sans-serif;    /* Название шрифта */
   }
h1 {
    color: blue;   /* Цвет шрифта */
}
 </style> 
  </head>
  <body>
<h1>Заищенная папка</h1>
</body>
</html>

Содержимое файла index.html будет отображаться при успешном входе в защищенною папку .

Как создать файл паролей


Файл паролей создадим в каталоге home папку pass, полный путь будет таким :c:/WebServer/home/pass/ как вы заметили мы будем сохранять файл с паролем вне корневого каталога документов сервера .Файл паролей не должен быть доступен через Web – интерфейс .

Создать файл паролей (pass.conf) можно с помощью программы htpasswd.exe , расположенной в папке bin (c:\WebServer\WAMP\Apache24\bin\). Для выполнения программы необходима командная строка от имени администратора или можно воспользоваться сторонним файловым менеджером Far ,скачать который можно по адресу https://www.farmanager.com/download.php?l=ru , выбираете версию , я выбрал msi 64 bit, установка простая , после установки запустите менеджер Far и мы приступим к созданию файла pass.conf , все примеры далее будут приведены именно используя файловый менеджер Far, почему рекомендую его для создания паролей , потому , что Far не оставляет историю от паролей как командная строка.

Примечание : Не рекомендуется набирать пароли в командной строке , поскольку введенные таким образом команды сохраняются в истории командной строки в не зашифрованном виде и могут быть доступны злоумышленникам .Поэтому нужно не лениться и набирать пароли в ответ на приглашение программы htpasswd.exe .

Запускаем Far от имени администратора и переходим в папку c:\WebServer\WAMP\Apache24\bin набрав команду:

cd c:\WebServer\WAMP\Apache24\bin

В командной строке должно быть приглашение c:\WebServer\WAMP\Apache24\bin

Программа Far


Программа Far
Программа Far

В строке приглашения набираем команду , которая создаст файл pass.conf для пользователя Serega :

htpasswd -c C:\WebServer\home\pass\pass.conf Serega

Нажимаем клавишу Enter . Появиться приглашение ввести пароль :

New password:

Вводим пароль например: 1234

Программа запросит подтверждение , вводим снова: 1234

Вид программа Far при создании пароля


Вид программа Far при создании пароля
Вид программа Far при создании пароля.

В итоге будет создан файл pass.conf с паролем в папке C:\WebServer\home\pass\pass.conf

Вид пароля в файле pass.conf
Вид пароля в файле pass.conf

Как видно , пароль 1234 в этом файле отсутствует , он находится в зашифрованном виде . Тем более мы файл с паролем разместили в папке отдельной от самого сайта , тем мы увеличили безопасность .

Теперь создадим пароль еще одного пользователя . Для этого в командной строке набираем :

htpasswd -b C:\WebServer\home\pass\pass.conf Anj 2784

Создание пароля для второго пользователя Anj


Создание пароля для второго пользователя Anj
Создание пароля для второго пользователя Anj.

Как мы видим флаг -c мы заменили флагом -b , указали пароль сразу за после имени пользователя Anj . Если использовать флаг -c то пароль будет перезаписан , что нам не желательно.

Вид пароля в файле pass.conf для второго пользователя Anj


Вид пароля в файле pass.conf для второго пользователя Anj
Вид пароля в файле pass.conf для второго пользователя Anj.

Сейчас вы можете проверить как , это работает , то есть зайти в папку test через запрос браузера , http://localhost/test/ ,чтобы постоянно не набирать адрес в браузере вы можете сохранить основные папки сервера в закладках .

Сейчас при попытке зайти в папку test через запрос браузера , http://localhost/test/,и открыть любой документ в этой папке будет выведено окно для ввода пароля .

Выделение текста цвета


Окно для ввода пароля
Окно для ввода пароля.

Часть материалов взята