Закрытия сайта, разделов паролем.
Может появиться необходимость закрыть доступ неавторизированных пользователей к определенным разделам, документам сайта.
С задачами справляются штатные функции встроенной защиты 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 — расширения файлов, к которым будет открыт доступ в закрытой директории.
Также можно воспользоваться при желание софтом