О web-разработке
и даже немного больше...

HTTP авторизация

Наверное, вы когда-нибудь сталкивались с таким явлением как HTTP авторизация, давайте немного освежим нашу память, и вспомним – что это и где это дело может использоваться. Если вы тесно связаны с веб-индустрией, то с большой вероятностью вы в курсе, о чем идет речь, если нет ничего страшного, мы сейчас внесем ясность в этот вопрос.

Как известно среда веб – открытая среда, и в силу своей открытости возможность HTTP авторизации направлена на ограничение доступа к каким либо ресурсам на сервере. В качестве ресурса мы будем подразумевать какую-либо разделы либо обычную директорию на сайте. Давайте рассмотрим пример, как можно ограничить доступ к публичной папке, размещенной на сервере. Сделать это можно в два шага. Первый – нам необходимо сгенерировать файл .htpasswd, который будет хранить учетные записи для авторизации. Второй – прописать путь к файлу с учетными записями в .htaccess.

Данный пример актуален для веб-сервера Apache. В качестве операционной системы используется Linux CentOS 6.

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

htpasswd -mbc .htpasswd username PassWord

username – вместо этого вам следует указать логин;
PassWord – указываете пароль.

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

htpasswd -mb .htpasswd username PassWord

Здесь список ключей из документации:
-c Create a new file.
-n Don’t update file; display results on stdout.
-m Force MD5 encryption of the password.
-d Force CRYPT encryption of the password (default).
-p Do not encrypt the password (plaintext).
-s Force SHA encryption of the password.
-b Use the password from the command line rather than prompting for it.
-D Delete the specified user.

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

AuthType Basic
AuthName "Private zone. Only for administrator!"
AuthUserFile  /home/sites/mysite.com/.htpasswd
require valid-user

На самом деле всё довольно просто, давайте подытожим. Нужно понимать что данный метод авторизации существует довольно таки давно, и разумеется, он далеко от идеального по современным меркам информационной безопасности. По этой причине вам нужно понимать, что закрывая какие-либо разделы, подобный метод авторизации должен соответствовать уровню важности информации которую вы хотите обезопасить. Однако зачастую этого метода авторизации вполне бывает достаточно, скажем, вы решили временно закрыть какой-либо раздел, то этот метод вполне может сгодиться. На этом пока всё, всех успехов в труде!

Опубликован: 23.05.2017 г.

См. также:

Преимущества и недостатки веб-серверов Nginx и Apache
Как включить сжатие GZip в Nginx?
Подробнее о логах в Apache
Ротация логов в Linux
Denwer в локальной сети
Просмотр списка загруженных модулей Apache
httpd грузит процессор, что делать?
Тестирование сайта под нагрузкой

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта