1. Home
  2. Техническое
  3. Ограничение доступа к веб-сайту с .htpasswd файлом

Ограничение доступа к веб-сайту с .htpasswd файлом

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

В результате вместо веб-страницы посетитель видит в браузере форму входа. Снимок экрана является иллюстрацией, реальное диалоговое окно зависит от браузера и его языковых настроек.

Authorisation required

Разрешение доступа одному пользователю

Войдите в My Zone и откройте файловый редактор (нажмите на кнопку Файлы в блоке Веб и почта).

Создайте новый файл с именем .htpasswd (перед именем должна быть точка!), желательно в том же каталоге, который открылся (вы также можете создать для него отдельный каталог; при условии, что этот каталог не будет доступен через веб).

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

Generated password

Сохраните изменения, нажав кнопку Save в правом нижнем углу.

Далее откройте корневой каталог веб-сайта (если страница расположена на главном домене, например domain.ee, то по умолчанию это будет каталог htdocs, если на поддомене, то по умолчанию это будет каталог поддомена).

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

AuthUserFile /path/to/.htpasswd
AuthType Basic
AuthName "Restricted webpage"
Require valid-user

Замените /path/to/.htpasswd в первой строке на полный путь к каталогу файла .htpasswd (так, чтобы в конце строки по-прежнему был /.htpasswd) и сохраните изменения.

Если вы создали файл .htpasswd в том же каталоге, что и тот, который был открыт первым в менеджере файлов, то этот каталог является корневым каталогом сервера. Полный путь к корневому каталогу сервера можно найти в последней строке страницы Данные сервера на вашем сервере (Корневой каталог виртуального сервера).

Разрешение доступа определенной группе пользователей

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

Для этого создайте новый файл, в котором введите группы пользователей в форме groupname: username username2 username3, по одной группе в строке.

User group

Внимание!

Файл группы пользователей должен быть размещен на сервере в каталоге, который не доступен через веб! В противном случае содержимое файла будет видно всем, кто захочет его увидеть.

Затем в файле .htaccess измените значение строки директивы Require на: group название группы, а также добавьте в файл новую строку с директивой AuthGroupFile, которая должна быть полным путем к каталогу файла группы, то есть расположением файла на сервере. Сохраните изменения.

Allowed users

Немного больше технических деталей

Генератор паролей .htpasswd

Пароли в файле .htpasswd должны быть хэшированы. Самый простой способ получить пароли в нужном формате – использовать этот инструмент для генерации паролей .htpasswd.

В нем вам нужно ввести желаемое имя пользователя и пароль в форму INPUT (или позволить форме сгенерировать пароль за вас) и нажать на кнопку Generate .htpasswd file.

После нажатия на кнопку в поле OUTPUT под формой появится текстовая строка, которую следует скопировать. Текстовая строка отформатирована в виде username:encryptedpassword и должна быть вставлена в файл .htpasswd в этом  же формате.

Password generator

Содержимое файла .htpasswd

Содержимое файла .htpasswd очень простое – вам нужно только ввести информацию о доступе в формате username:encryptedpassword, по одному пользователю на каждой строке. Пароль должен быть хэшированным.

Allowed users

Внимание!

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

Содержание файла .htaccess

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

Authentication in .htaccess

Директива AuthUserFile

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

В нашем примере файл .htpasswd расположен в той же директории, что и файл .htaccess (в корневой директории поддомена restricted.millionviews.eu), но в целях безопасности настоятельно рекомендуется размещать этот файл в каталоге, который невозможно открыть браузером через веб. Например, непосредственно в каталоге /www.sinudomeen.ee/… а еще лучше – в каталоге одного с ним уровня (это можно сделать через SSH).

Полный путь к корневому каталогу сайта можно найти в Мой Zone в управление хостингом, в разделе Вебсервер >> Настройки главного домена или Поддомены .

Директива AuthType

AuthType или тип аутентификации может быть None, Basic, Digest или Form. Дополнительную информацию о типах аутентификации можно найти в документации Apache.

Директива AuthName

Раньше значение AuthName отображалось в форме входа в систему, но теперь его единственная функция – различать домены аутентификации. Благодаря этой директиве, например, от уже прошедшего проверку подлинности пользователя не будут повторно запрашивать учетные данные для входа в систему, если на сервере есть несколько веб-страниц, требующих аутентификации с одним и тем же значением AuthName.

Директива Require

Директива Require, описанная в четвертой строке, позволяет указать предположение, при котором попытка входа в систему будет успешной. Например, для значения valid-user достаточно, чтобы посетитель ввел правильные имя пользователя и пароль, которые соответствуют данным в файле .htpasswd.

Однако можно также разрешить доступ на групповой основе, чтобы только определенные пользователи, которые ввели файл .htpasswd, имели доступ к странице.
В этом случае значение Require должно иметь вид group GroupName.

 

Updated on 30. Apr 2024

Was this article helpful?

Related Articles