Небольшая заметка на память как быстро организовать надежную защиту доступа к файлам и папкам на сервере под управлением HTTP-сервера Apache посредством авторизации.
В итоге доступ к листингу содержимого папок имеют конкретные юзеры определенные в файле .htaccess по логину и паролю определенным в файле .htpasswd.
Тестовая структура каталогов
folder1 | pass | folder2 | | | +-folder4 | folder3 |
Папки 1-3 содержать нужные файлы, в папке pass лежит файл .htpasswd с паролями.
Также в каждой папке (кроме корневой) лежит файл .htaccess с примерно таким содержимым:
AuthName "Зона с ограниченным доступом. Restricted area." AuthType Basic AuthUserFile /var/www/pass/.htpasswd Require user user1 user2 user3 |
Для разрешения просмотра соответствующим юзерам (либо с «Require valid-user» для всех существующих в .htpasswd юзеров).
Также в корневой .htaccess следует добавить строчку: Options +Indexes, что разрешит листинг этой и вложенных папок, а вцелом он может выглядеть так:
Options +Indexes DirectoryIndex index.html AddDefaultCharset Windows-1251 IndexOptions Charset=Windows-1251 |
Index.html в данном случае можно использовать для организации навигации по папкам:
<html> <title> Навигация по папкам </title> <body> <h1>Список папок с доступом по паролю</h1> <a href="folder1">folder1</a><br> <a href="folder2/folder4">folder2</a><br> </body> </html> |
Регистр имеет значение!
Генерация паролей для .htpasswd
Для генерации паролей можно воспользоваться программой «Encode UNIX Passwords».
Заметка не претендует на энциклопедическую правильность, корректировки в комментариях приветствуются.
Спасибо, Я хочу сделать страницу с файлами на сайте, и не знал как правильно защитить дирректорию, нигде не могу найти, а тут всё подробно. Спасибо!