Безопасность
August 13, 2020

Закрытия сайта, разделов паролем.

Может появиться необходимость закрыть доступ неавторизированных пользователей к определенным разделам, документам сайта.

С задачами справляются штатные функции встроенной защиты WEB-сервера Apache. Достаточно выполнить следующую последовательность действий: создать файл с паролями, назвав его .htpasswd, переписать его на сервер; и создать файл .htaccess, с указаниями по защите, и записать его в директорию на сервере, которую необходимо защитить паролем. Если необходимо защитить паролем полностью весь сайт, то информация файла .htaccess должна находиться в корневой директории.

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

.htpasswd, — это обычный текстовой файл, он должен иметь следующую структуру:

user_1:password_1

user_2:password_2

Чтоб создать этот файл откройте приложение «Блокнот» на компьютере, либо другой текстовый редактор, и сохраните новый документ под именем .htpasswd, без расширения txt. При сохранении нового файла выберите кодировку UTF-8.

Придумайте новый логин и сгенерируйте новый пароль.

Генерация сложных паролей всегда надёжнее включая спец символы.

Примеры

  • Цифры 0-9
  • Маленькие буквы a-z
  • Большие буквы A-Z
  • Спец. символы %, *, ),?, @, #, $, ~
  • Избегать повторяющихся символов

Пример паролей

  • X89d{%6Biwgv
  • GXaedQA1xWcL
  • FnqmPDYd~{0H
  • h$sLEBMfT|zw
  • Xnt%zTHme3fA
  • qOwnVj50p@%N
  • J*ufUGPqs~wx
  • |Bs145exXUyF
  • 04C@maE7bpQ6
  • gvqusj~opCe0

Затем, на втором этапе сгенерируйте содержимое файла .htpasswd, воспользовавшись генератором содержимого или этим.

Вам выдаст аналогичный результат

Anatory:$apr1$nmepc8ih$uHzdCGqN4GeqGHSryUMzV0

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

Теперь сохраните на сервере полученный файл .htpasswd. Для более надежной защиты лучше положить его в директорию не доступную через www. Это может быть любая созданная вами папка на одном уровне с директорией, в которой содержатся файлы вашего сайта. Теперь скопируйте путь к сохраненному файлу на хостинге.

Как создать файл защиты .htaccess

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

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

AuthType Basic AuthName "https://teletype.in/@anatory" AuthName "Protected Area" AuthUserFile /home/XXXX/YYYYY/.htpasswd Require valid-user

XXXX/YYYYY дериктория, где лежит наш .htpasswd

Описание файла .htaccess

  • AuthType – тип аутентификации (в нашем случае Basic)
  • AuthName – сообщение аутентификации (текст, помогающий посетителю понять, где он пытается получить доступ. Например, можно написать: «Стой! Опасная зона! Только для избранных!».
  • AuthUserFile – полный путь к файлу с паролем (.htpasswd). Относительные пути не будут работать.
  • AuthGroupFile – путь к файлу групп, если он существует.

Если же вы хотите защитить паролем определенную директорию, то необходимо создать новый чистый файл .htaccess, по аналогии с тем, как мы создавали файл .htpasswd. И внести в него только лишь информацию с правилами для защиты, которая показана в предыдущем абзаце. После чего его нужно сохранить, и записать в директорию, которую необходимо запаролить.

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

Как закрыть доступ к сайту паролем с исключениями

Кроме того, указав следующую информацию в файле .htaccess при необходимости можно:

  • Открыть доступ только к определенному файлу

require valid-user Authname "Protected" Authtype Basic AuthUserFile "/home/XXXX/YYYYY/.htpasswd" <Files page.php> allow from all satisfy any </Files>

где .pdf — расширение файлов, к которым будет открыт доступ в закрытой директории.

  • Открыть доступ к файлам с несколькими расширениями

Authname "Protected" Authtype Basic AuthUserFile "/home/XXXX/YYYYY/.htpasswd" <FilesMatch ".(gif|bmp|tiff|swf)quot;> allow from all satisfy any </FilesMatch>

где gif, bmp, tiff, swf — расширения файлов, к которым будет открыт доступ в закрытой директории.

Также можно воспользоваться при желание софтом