Доступ к папке на сайте по паролю с помощью Apache - Basic Authentication.

Количество просмотров: 144

Для чего нужно: ограничить доступ к папке со скриптом используя логин и пароль, скрыть web-морду админки или просто поиграться, доступ будет открыт если введеная пара логин/пароль совпадет с тем что записано в файле.

Данный пример реализуется на Ubuntu с установленным Apache 2.2 - 2.4, если у вас установлена другая OS, то скорее всего что-то будет по-другому, но принцип в целом остается прежним.

Создание файла с паролем для Apache .htpasswd

Файл хранящий пару логин/пароль обычно называют .htpasswd т.к. по умолчанию в Apache доступ к файлам имена которых начинаются с .ht запрещен и не может быть прочитан посетителями вашего сайта. Данный файл помещают в ту директорию(папку/каталог), доступ к которой собираются ограничить. Для примера создадим на нашем web сервере (локальном или боевом) папку test.

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


htpasswd -mc .htpasswd user

ключи -mc говорят, что нужно создать файл с паролем используя алгоритм шифрования MD5

.htpasswd - название файла в который запишутся данные

user - логин

Нажимаем enter и вводим два раза нужный нам пароль. Если введенные данные совпадают, то htpasswd создаст файл .htpasswd .

Посмотрим на его содержимое, cat .htpasswd , и в терминале отобразится имя пользователя и зашифрованный пароль.

Теперь зайлем файл на сервер в нашу папку test, и настроим доступ.

Создадим файл .htaccess со следующим содержимым:


RewriteEngine Off

AuthName "Protected Area" #текст окна авторизации
AuthType Basic #тип защиты 
AuthUserFile /home/public_html/test//.htpasswd #путь от корня к файлу
Require valid-user #группа разрешенных пользователей

<Files .htpasswd>
   deny from all  #запрет доступа из браузера к .htpasswd
</Files>
ErrorDocument 401 "401 Authorisation Required"

Теперь попробуем обратиться к нашей папке test, и если вы все сделали правильно, то перед вами появится следующее окошко с запросом логина - пароля, в него вводим данные и получаем доступ. Все, вы восхитительны, спасибо за внимание.

UPD:

Если не хотите возиться с утилиткой в консоли, то можете сгенерить файл .htpasswd на сайте http://www.htaccesstools.com/htpasswd-generator/

Документация по BasicAuth - https://wiki.apache.org/httpd/PasswordBasicAuth

Документация по htpasswd - https://httpd.apache.org/docs/2.4/en/programs/htpasswd.html


© 2015-2019 Goodweb.me --- Карта сайта --- info@goodweb.me

Наверх