Как защитить сайт паролем с помощью файла htpasswd | Info-Comp.ru
Всем привет! Сегодня мы поговорим о том, как защитить сайт паролем с помощью htpasswd. Такая необходимость может возникнуть при разработке нового сайта или при любой другой ситуации, когда вам нужно закрыть доступ к сайту или директории паролем. Это может быть обусловлено необходимостью запретить индексирование контента поисковыми роботами в период разработки или может появиться необходимость закрыть доступ к определенным разделам, документам сайта.
Содержание
- Как ограничить доступ к сайту
- Как создать файл паролей .htpasswd
- Как подключить .htpasswd в Nginx
- Как подключить .htpasswd в Apache
Как ограничить доступ к сайту
Доступ к содержимому любого каталога на сервере можно ограничить почти на всех web-серверах с помощью htpasswd файла. При обращении к каталогу через браузер пользователю будет выводиться диалоговое окно, для ввода логина и пароля.
Как создать файл паролей .htpasswd
На первом этапе придумайте новый логин и сгенерируйте новый пароль, воспользовавшись страницей c инструментом генератора паролей. Сохраните полученные пароли.
Затем, вам нужно сгенерировать содержимое для .htpasswd файла, воспользовавшись htpasswd генератором. В поле «Юзер(Логин)» укажите придуманный вами логин (только латинскими буквами), в поле «Пароль», — сгенерированный ранее пароль. После этого вы получите результат, что то наподобие этого:
admin:$apr1$evskxt6q$p3RZUmYH.mVZn9nVMij850
Чтобы понять, что мы получили в результате, полученную строку можно представить как <login>:<password>, где admin — это наш «Юзер(Логин)», а $apr1$evskxt6q$p3RZUmYH.mVZn9nVMij850 это наш зашифрованный пароль.
Далее нам необходимо создать обычный текстовый файл с именем .htpasswd. И в этот файл нам необходимо вставить нашу строку admin:$apr1$evskxt6q$p3RZUmYH.
admin:$apr1$evskxt6q$p3RZUmYH.mVZn9nVMij850 developer:$apr1$pngk7j62$Z/cOxoZMvrwUROGXrbMiY/
Где мы видим 2 учетные записи для логина admin и developer.
Внимание:
- Содержимое файла должно быть только из строк сгенерированных с помощью генератора, если их несколько — то добавлять их с новой строки.
- Пустых строк в файле не должно быть
- Файл должен быть в кодировке UTF-8
Еще стоит заметить, что вы можете сгенерировать .htpasswd файл с помощью программ, которые вы можете скачать в интернете, но это не рекомендуется делать, так как программы могут содержать вирусы.
Теперь нам осталось подключить . htpasswd файл к WEB-серверу. В этой статье мы рассмотрим подключение к Apache и Nginx.
Как подключить .htpasswd в Nginx
Чтобы защитить определенную директорию на сайте, вам необходимо обновить конфиг nginx вашего сайта, и добавить туда что то вроде этого:
location /protect { auth_basic "Admin Area"; auth_basic_user_file /path/to/.htpasswd; }
- location /protect — означает что мы будем защищать директорию /protect паролем.
- auth_basic «Administrator’s Area»; — название диалогового окна в котором вам нужно будет ввести логин и пароль.
- auth_basic_user_file /path/to/.htpasswd; — путь к .htpasswd файлу.
Чтобы проверить, что ваш контент защищен, попробуйте получить доступ к ограниченному контенту в браузере, для этого на нужно перейти по адресу www.example.com/protect (если вы указали location /protect, в противном случае вам нужно указать свой путь).
Также мы можем ограничить доступ ко всему сайту, но при этом сделать некоторые области сайта общедоступными. В этом случае укажите auth_basic off в определенной директории:
server { ... auth_basic "Admin Area"; auth_basic_user_file /path/to/.htpasswd; location /public { auth_basic off; } }
Заметка! Как защитить сайт на WordPress от взлома. 17 способов защиты.
Как подключить .htpasswd в Apache
Сначала рассмотрим, как закрыть полностью весь сайт. Откройте файл виртуального хоста, в который вы хотите добавить ограничение и добавьте туда корневую директорию вашего сайта:
<VirtualHost *:80> DocumentRoot /var/www/html ... <Directory "/var/www/html"> AuthType Basic AuthName "Admin Area" AuthUserFile /path/to/. htpasswd Require valid-user </Directory> </VirtualHost>
Таким образом, мы можем указать какую-то более верхнюю директорию в вашем сайте для того, чтобы закрыть специфическую директорию на вашем сайте.
А теперь давайте рассмотрим, как можно блокировать доступ к сайту, если у вас включена настройка:
AllowOverride All
Эта настройка включает возможность использовать файлы .htaccess. Теперь перейдите в каталог, к которому хотим ограничить доступ по паролю, создаем файл .htaccess с такими директивами:
AuthType Basic AuthName "Admin Area" AuthUserFile /path/to/.htpasswd Require valid-user
Если вы файл .htpasswd положили где-то в директории с сайтом, то теперь вам нужно защитить его, для этого вам нужно создать .htaccess файл в той же директории где лежит файл с паролями. Если там уже есть файл .htaccess, то тогда вам его нужно открыть для редактирования и добавить следующие строки:
<Files . htpasswd> deny from all </Files>
Надеюсь, что эта информация была полезна для вас.
Файл .htaccess. Ограничение доступа, защита файлов, доступ по паролю
главная / web / статьи / файл .htaccess / часть 3
Файл дополнительной конфигурации .htaccess так же часто используют для ограничения доступа к сайту, разделам сайта или конкретным файлам, находящимся на сервере.
Чтобы запретить доступ ко всему сайту, необходимо в файле .htacces написать следующее:
deny from all
Запретить доступ только с конкретного ip-адреса:
deny from all
order allow deny
deny from all
deny from ip_адрес_пользователя
«ip_адрес_пользователя» необходимо заменить на конкретный ip-адрес.
Чтобы разрешить доступ только с конкретного ip-адреса, можно написать:
order allow deny
deny from all
allow from ip_адрес_пользователя
Так же с помощью файла .htaccess можно запретить доступ к конкретному файлу.
< Files .htaccess >
order allow,deny
deny from all
Наверное, всем пользователям интернета попадались одинаковые статьи на различных сайтах. Очень часто бывает, что эти статьи попросту сворованы с других ресурсов. Поисковые системы стараются бороться с дублированными страницами, но выбор ими первоисточника не всегда оказывается верным. И это является серьезной проблемой для копирайтеров и веб-мастеров, так как на написание качественного контента, порой, уходит большое количество сил и времени, и очень неприятно обзавестись штрафными санкциями поисковиков за то, что кто-то скопировал контент с Вашего сайта. А зачастую, вместе с текстом воруют так же и изображения. Причем, многие воры, чтобы не перегружать свой сервер, не скачивают изображение с чужих сайтов, а просто ссылаются на файлы, находящиеся на сайте-первоисточнике.
RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ — [NC,F,L]
При помощи файла дополнительной конфигурации .htacces возможно установить пароль на директорию сайта, конкретный файл или группу файлов с одинаковым расширением. Чтобы установить пароль на директорию, в .htaccess необходимо написать:
AuthName «What do you want?«
AuthType Basic
AuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd
require valid-user
Файл .htaccess, содержащий эти строки необходимо поместить в директорию, доступ к которой мы хотим закрыть. При попытке пользователя зайти на соответствующий раздел сайта сервер отдаст код статуса 401 (требуется авторизация) и выведет окно с полями для ввода имени пользователя и пароля и сообщением «What do you want?», указанным в директиве «AuthName» (допускаются только латинские символы и цифры).
Имена пользователей и пароли хранятся в файле .htpasswd. Путь к этому файлу задается в директиве «AuthUserFile».
Важно: путь к файлу .htpasswd указывается абсолютный, от корневого каталога сервера.
Чтобы узнать путь к .htpasswd, который необходимо указать в .htaccess, можно создать файл php, содержащий:
< ?php echo $_SERVER[‘DOCUMENT_ROOT’]; ? >
Закачать этот файл на сервер туда же, где находится .htpasswd, и открыть его в браузере. В сгенерированной странице Вы увидите абсолютный путь к директории, указанный от корневого каталога сервера.
Установить пароль на конкретный файл можно следующим образом:
< Files file.txt >
AuthType Basic
AuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd
Пароль на группу файлов:
< Files «\.(sql)$» >
AuthName » It’s not for all «
AuthType Basic
AuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd
В данном случае все файлы, имеющие расширение .sql будут доступны только по паролю.
← предыдущая статья ↑ к списку статей ↑
Настройка парольной аутентификации с помощью Apache в Ubuntu 18.
04 22 февраля, 2020 11:57 дп 621 views | Комментариев нетUbuntu | Amber | Комментировать запись
К некоторым компонентам и данным сайта доступ должен быть только у администратора и отдельных пользователей. Многие веб-приложения предоставляют собственные средства для аутентификации, но если стандартный метод по какой-либо причине не подходит, для ограничения доступа можно использовать сам веб-сервер.
Данный мануал поможет настроить парольную аутентификацию через Apache на сервере Ubuntu 18.04, благодаря чему у сервера появится дополнительный уровень безопасности.
Требования
- Предварительно настроенный сервер Ubuntu 18.04.
- Пользователь с доступом к команде sudo (создать такого пользователя можно с помощью этого мануала).
- Веб-сервер Apache2 (чтобы установить его, следуйте мануалу Установка веб-сервера Apache в Ubuntu 18. 04).
- Поддержка SSL. Если у вас есть доменное имя, вы можете получить бесплатный SSL-сертификат от Let’s Encrypt. Если у вас нет зарегистрированного домена, вы можете создать самоподписанный сертификат.
Войдите в сессию вашего пользователя sudo и приступайте к работе.
1: Установка пакета apache2-utils
Для начала нам нужно установить на сервер пакеты, которые понадобятся нам в работе.
Чтобы создать файл для хранения паролей, понадобится утилита htpasswd. Она входит в пакет apache2-utils, который можно найти в стандартном репозитории.
Обновите индекс пакетов и установите apache2-utils с помощью следующих команд:
sudo apt update
sudo apt install apache2-utils
2: Создание файла паролей
Теперь у вас есть доступ к команде htpasswd, которая позволяет создавать файлы паролей. С помощью такого файла Apache будет выполнять аутентификацию пользователей. Создайте скрытый файл .htpasswd в каталоге /etc/apache2.
При первом запуске утилита требует флаг -c, который создаёт необходимый файл .htpasswd. Чтобы создать новую запись в файле, укажите в конце команды имя пользователя:
sudo htpasswd -c /etc/apache2/.htpasswd 8host
Команда запросит пароль текущего пользователя.
Чтобы добавить в этот файл данные других пользователей, используйте команду htpasswd без флага –с.
sudo htpasswd /etc/apache2/.htpasswd another_user
Теперь просмотрите содержимое файла; в нём должны быть имена пользователей и их зашифрованные пароли.
cat /etc/apache2/.htpasswd
8host:$apr1$.0CAabqX$rb8lueIORA/p8UzGPYtGs/
another_user:$apr1$fqH7UG8a$SrUxurp/Atfq6j7GL/VEC1
3: Настройка аутентификации Apache
Файл паролей с необходимыми данными готов. Теперь нужно настроить Apache, чтобы он проверял этот файл перед обслуживанием закрытого контента. Это можно сделать двумя способами: добавить информацию о файле паролей в виртуальный хост или создать файлы . htaccess в тех каталогах, содержимое которых нужно защитить. Обычно использовать виртуальный хост удобнее. Но если в вашем случае обычные пользователи системы должны иметь возможность самостоятельно управлять доступом, лучше добавить файлы .htaccess.
Выберите наиболее подходящий метод настройки и следуйте инструкциям соответствующего раздела.
Вариант 1: Настройка аутентификации через виртуальный хост
Этот метод обеспечивает более высокую производительность, поскольку веб-серверу не придется читать дополнительные конфигурационные файлы. Для такой настройки вам нужен доступ к конфигурации, который есть не у всех пользователей.
Откройте файл виртуального хоста того сайта, доступ к которому нужно ограничить. В данном мануале используется стандартный файл default-ssl.conf , который поставляется вместе с apache.
sudo nano /etc/apache2/sites-enabled/default-ssl.conf
Внутри файл выглядит так (для удобства закомментированные строки опущены):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error. log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
В Apache аутентификация настраивается на основе каталогов. Чтобы настроить ее, сначала найдите раздел каталога, к которому нужно ограничить доступ, в блоке <Directory ___>. Здесь мы для примера показываем, как ограничить доступ к корневому каталогу (а вы при необходимости укажите другой каталог):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/html">
</Directory>
</VirtualHost>
В блоке этого каталога нужно указать тип аутентификации (в данном случае это Basic). В AuthName укажите имя, которое будет отображаться при запросе учетных данных. В директиве AuthUserFile укажите созданный ранее файл паролей. Установите значение valid-user для директивы Require, чтобы разрешить доступ к контенту только зарегистрированным пользователям.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/html">
AuthType Basic
AuthName «Restricted Content»
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
</VirtualHost>
Сохраните и закройте файл.
Проверьте файл на наличие ошибок:
sudo apache2ctl configtest
Команда должна вернуть:
Syntax OK
После этого можете перезапустить веб-сервер. Система systemctl не отображает на экране вывода некоторых команд управления сервером, потому состояние сервера после его перезапуска нужно запросить вручную:
sudo systemctl restart apache2
sudo systemctl status apache2
Теперь пользователь должен будет ввести пароль, чтобы просматривать каталог.
Вариант 2: Настройка аутентификации с помощью файлов .
htaccessApache может управлять аутентификацией с помощью файлов .htaccess. При этом Apache перечитывает каждый такой файл, что, конечно, отражается на производительности. По этой причине мы рекомендуем настраивать веб-сервер согласно первому варианту. Вариант 2 подходит, если вы уже используете файлы .htaccess или хотите предоставить пользователям без прав root возможность управлять ограничениями.
Чтобы включить поддержку аутентификации по файлам .htaccess, откройте конфигурационный файл Apache:
sudo nano /etc/apache2/apache2.conf
Найдите блок <Directory> для каталога /var/www (document root по умолчанию). Чтобы включить поддержку файлов .htaccess, нужно изменить значение директивы AllowOverride с None на All.
. . .
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
. . .
Сохраните и закройте файл.
Затем нужно добавить файл . htaccess в тот каталог, доступ к которому вы хотите ограничить. Мы для примера покажем ниже, как закрыть доступ к каталогу document root, /var/www/html (то есть ко всему сайту). Чтобы ограничить доступ к другому каталогу, внесите в код соответствующие поправки.
sudo nano /var/www/html/.htaccess
В этом файле нужно указать тип аутентификации, в данном случае это Basic. В AuthName укажите имя, которое будет отображаться при запросе учетных данных. В директиве AuthUserFile укажите созданный ранее файл паролей. Для директивы Require укажите значение valid-user, чтобы открыть доступ к контенту только тем пользователям, которые могут пройти аутентификацию.
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
Сохраните и закройте файл. Перезапустите веб-сервер, чтобы обновить настройки.
sudo systemctl restart apache2
sudo systemctl status apache2
4: Тестирование авторизации
Чтобы убедиться, что все необходимые каталоги теперь защищены паролем, попробуйте получить доступ к закрытому контенту в веб-браузере. На экране должна появиться форма аутентификации, предлагающая ввести имя пользователя и пароль:
Authentication Required
The server requires a username and password. The server says:
Restricted server.
User Name:
Password:
Введите валидные учётные данные, чтобы получить доступ к контенту. Если вы предоставите неправильные данные, сервер вернёт ошибку «Unauthorized».
Заключение
Теперь контент сайта защищён с помощью пароля. Парольную аутентификацию рекомендуется комбинировать с шифрованием SSL, в противном случае учетные данные будут передаваться на сервер в виде простого текста, а это очень серьёзная проблема для безопасности.
Читайте также:
- Настройка виртуальных хостов Apache в Ubuntu 16.04
- Использование файла .htaccess
- Перезапись URL-адресов на Apache в Ubuntu 18.04
- Перемещение корневого каталога Apache в Ubuntu 18.04
Защита паролем каталога на вашем сайте с помощью .htaccess и htpasswd
Вы можете очень легко защитить паролем определенные каталоги на вашем сайте всего за несколько минут. Вы можете защитить паролем каталог, чтобы:
- Ограничить доступ к определенным каталогам, чтобы только вы могли получить к ним доступ
- Разрешить определенным пользователям просматривать содержимое специально для них
- Запретить ботам и поисковым роботам индексировать содержимое
Содержание
- Защита каталога паролем с помощью панели управления
- Добавление защиты паролем к папке в Apache
- Настройка файла .htaccess
- Настройка файла .htpasswd
- Просмотр содержимого файла .htpasswd Проверка
6
6
6 разрешения вашего файла .htpasswd
- Тестирование ваших защищенных паролем каталогов
Защита каталога паролем с помощью панели управления
Некоторые коммерческие веб-хостинги, которые предлагают панель управления (например, cPanel), позволят вам защитить паролем каталог в несколько коротких шагов одним щелчком мыши. Процесс в cPanel таков:
- Войдите в свою учетную запись cPanel.
- В разделе Security щелкните значок с надписью Password Protect Directorys .
- Во всплывающем окне выберите каталог, в который вы хотите перейти.
- Выберите из списка каталог, который вы хотите защитить паролем, и щелкните его.
- Создайте имя пользователя и пароль для этого каталога, которые вам нужно будет вводить при каждом посещении.
Если у вас нет доступа к этой панели управления или вы предпочитаете делать это вручную, мы можем использовать встроенные функции Apache для достижения той же цели.
Добавление защиты паролем к папке в Apache
Чтобы начать работу с паролем, защищающим каталог, вам потребуется следующее:
- Веб-сервер, работающий на Apache.
- Веб-узел, позволяющий создавать и изменять файл .htaccess для настройки конфигурации сервера.
- Доступ к оболочке (SSH), чтобы вы могли получить доступ к своему веб-серверу с помощью интерфейса командной строки. (Вам также необходимо знать, как подключиться к вашему серверу с помощью SSH).
Настройка вашего файла .htaccess
Первое, что нам нужно сделать, это настроить ваш файл .htaccess, чтобы веб-сервер знал, где искать файл паролей и тип аутентификации. Ваш файл .htaccess должен выглядеть так:
. AuthName "Область, защищенная паролем" Основной тип авторизации AuthUserFile /ваш/каталог/.htpasswd требовать действительного пользователя
Строка AuthName будет показана в браузере любому, кто попытается получить доступ к папке, и вы можете изменить ее на то, что хотите, чтобы предоставить более подробную информацию о том, что представляет собой каталог.
AuthType сообщает серверу, какой тип аутентификации необходим. Установка этого параметра в Basic является распространенным типом аутентификации. Если вы планируете защитить конфиденциальные данные паролем, вам потребуется использовать шифрование SSL (Secure Sockets Layer). Однако это выходит за рамки данного руководства. Пока оставьте это как Basic.
AuthUserFile — это место, где мы укажем серверу наш файл паролей. Мы создадим этот файл на следующем шаге, и в идеале он должен находиться за пределами папки, доступной из веб-браузера. Итак, если файлы вашего сайта находятся в /my-site/public-html/
вы можете поместить этот файл на один каталог назад, в /my-site/
, чтобы избежать доступа к этому файлу через Интернет.
Обязательно используйте полный путь к этому каталогу.
После внесения этих изменений вы можете сохранить файл .htaccess и загрузить его в каталог, который вы хотите защитить с помощью FTP.
Настройка файла .htpasswd
Чтобы создать файл паролей каталога, войдите на сервер с помощью защищенной оболочки (SSH) и найдите свой домашний каталог (что обычно можно сделать с помощью команды изменения каталога 9).0038 cd и затем нажмите Enter).
(Примечание: ваш файл паролей может называться как угодно, но для простоты в этом руководстве мы будем использовать . htpasswd)
Используйте следующую команду, чтобы создать файл паролей с именем пользователя:
htpasswd -c .htpasswd имя пользователя
Имя пользователя
должно быть единым миром без пробелов, и как только вы нажмете клавишу возврата, вам также будет предложено создать пароль для этого пользователя. Утилита htpasswd , встроенная в Apache, создаст для вас файл паролей (в данном случае .htpasswd
) и поместите его в текущий каталог.
Вы можете переместить этот файл в другой каталог, если вы указали другое место в вашей AuthUserFile
строке .htaccess.
Чтобы добавить пароли в ваш файл для дополнительных пользователей, которым вы хотите предоставить доступ к каталогу, вы используете немного другую команду:
htpasswd .htpasswd другое имя пользователя
В этой команде -c
не используется, так как мы уже создали нужный нам файл. Без этой части команды Apache вместо этого будет искать существующий файл, который равен 9. 0081 .htpasswd .
Будьте осторожны, потому что если вы используете -c
, исходный файл будет перезаписан и создан новый.
Просмотр содержимого вашего файла .htpasswd
Чтобы проверить, все ли вы сделали правильно, вы можете просмотреть содержимое созданного вами файла паролей с помощью другой быстрой команды:
кот .htpasswd
cat
— популярная команда, которая позволяет выполнять различные задачи. В данном случае мы используем его для просмотра файла. В файле имена пользователей хранятся в виде обычного текста рядом с зашифрованным паролем. Ваш файл паролей может выглядеть примерно так:
начало сайта:p4tlgmcX2fE7NsP другой пользователь: 82ckb2esd7VLLU11
Вы можете видеть, что у этого файла есть два пользователя и они связаны с паролем, используя имя пользователя: пароль
. Эти пароли не являются фактическими паролями, которые вы выбрали, и они зашифрованы с использованием одного из нескольких типов шифрования в зависимости от настройки сервера.
Проверка прав доступа к вашему файлу .htpasswd
Нам нужно убедиться, что ваш файл паролей имеет надежные разрешения, чтобы никто другой не мог получить к ним доступ. Для этого мы можем вывести список файлов в текущем каталоге с помощью этой команды:
ls -al .htpasswd
Команда ls
показывает список файлов в каталоге, а -al означает отображение всех списков и полной версии этих списков (включая права доступа к файлу — это то, что нам нужно).
Если ваш файл htpasswd имеет следующий список, нам нужно внести некоторые изменения:
-rw-rw-rw- (больше выходов) .htpasswd
Первый rw
означает, что владелец (вы) может читать и записывать файл, что нам и нужно. Но второй и третий rw
означает, что он также доступен для чтения и записи всем в той же группе пользователей, что и вы, и всем, у кого есть учетная запись на сервере.
Нам нужно сделать это более безопасным, изменив разрешения на:
chmod 644 . htpasswd
Это изменит права доступа к вашему файлу паролей на 644, что дает вам доступ для чтения и записи, но доступ только для чтения для всех остальных.
Проверка ваших защищенных паролем каталогов
Последним шагом является использование вашего веб-браузера и посещение защищенного паролем каталога, чтобы убедиться, что он запрашивает имя пользователя и пароль и разрешает доступ после того, как вы предоставили правильные учетные данные.
Если это сработает, вы получите доступ к папке и любым файлам, содержащимся в ней.
(Посетили 4001 раз, 2 посещения сегодня)
Как защитить паролем один файл с помощью htaccess – Центр поддержки хостинга InMotion
Обновлено Скоттом Митчеллом от 16 августа 2021 г.
4 минуты, 23 секунды на чтение Файл .htaccess — это мощный инструмент, с помощью которого многие вещи обрабатываются за кулисами. В дополнение к таким вещам, как принудительное форматирование определенного URL-адреса, это также может помочь с доступом к определенным страницам. На многих сайтах есть разделы только для членов. Они либо закодированы для проверки по базе данных с такими языками, как php, либо сгруппированы в одну подпапку, защищенную паролем через cPanel.
Однако бывают случаи, когда вам может понадобиться защитить паролем только одну страницу, которая находится в общедоступной папке. Возможно, программа, с помощью которой вы создали свой сайт, не создает вложенных папок, таких как Premium Website Builder, и перемещение файла в защищенную область приведет к разрыву ссылок на сайте. Здесь может помочь файл htaccess. Следуйте приведенным ниже инструкциям, поскольку мы поможем вам защитить паролем один файл через ваш файл htaccess.
- Сначала мы хотим создать имя пользователя и закодированный пароль, которые мы будем использовать для входа в систему. Это делается не непосредственно в cpanel, а с сайта в Интернете, который может закодировать слово, которое вы хотите использовать в качестве пароля. На многих сайтах есть скрипты для этого.
- По ссылке на сайт скопируйте и вставьте полученный код в текстовый редактор, так как он понадобится вам позже. Для справки, формат кода, который он вам дает, — username:encoded_password .
- Далее вы хотите войти в свою cPanel.
- Найдите категорию Files и щелкните значок File Manager .
- Теперь вы находитесь в домашнем каталоге учетной записи хостинга. Домашний каталог недоступен из Интернета по URL-адресу, поэтому он более безопасен. Здесь мы хотим создать файл паролей, который будет использоваться для проверки доступа пользователей, пытающихся получить доступ к файлу, который мы собираемся защитить. Вы захотите создать новый текстовый файл. Для этого найдите Новый файл значок в верхней строке меню и щелкните его.
- Появится всплывающее окно с просьбой назвать файл. Здесь мы назвали его .htpassword (Обратите внимание, что имя файла начинается с точки. Это сделано намеренно, поскольку делает файл скрытым.) Ниже находится поле для ввода пути для хранения файла. Оставьте его пустым, чтобы по умолчанию использовалась корневая папка. Нажмите Создать новый файл , чтобы продолжить.
- Отсюда нажмите кнопку Настройки в правом верхнем углу.
- Установите флажок Показать скрытые файлы и нажмите Сохранить .
- Новый файл теперь в вашей учетной записи. На правой панели прокрутите вниз, пока не найдете файл, затем щелкните его правой кнопкой мыши. Нажмите на опцию Edit в появившемся меню. Появится всплывающее окно, просто нажмите кнопку Edit в правом нижнем углу, чтобы продолжить.
- Теперь мы в редакторе. Вырежьте и вставьте код имени пользователя и пароля, который вы дали ранее. Сохраняйте код одной строкой и не редактируйте его. Нажмите на Сохранить изменения кнопку для сохранения файла.
- Теперь мы хотим перейти в корневую папку вашего домена и изменить файл .htaccess, чтобы посетители получали запрос на вход в систему. Если вы работаете с основным доменом, дважды щелкните папку public_html , чтобы войти. Для дополнительных доменов дважды щелкните папку public_html , а затем найдите подпапку, которая является корневой для домена, и дважды щелкните ее, чтобы войти в ее корень. В нашем примере мы используем основной домен. Найдите .htaccess и щелкните его правой кнопкой мыши, как вы делали это раньше с файлом паролей. Это также вызывает меню. Найдите и нажмите на опцию Edit . Если появится всплывающее окно, просто найдите и нажмите кнопку Edit в правом нижнем углу, чтобы перейти в редактор.
- Теперь вы находитесь в текстовом редакторе для файла .htaccess . Поместите следующий код в свой htaccess, чтобы он запрашивал у посетителя логин.
AuthUserFile /home/user/.htpassword
AuthName «имя запроса на вход»
AuthType basic
require valid-user
Имя страницы должно быть точной страницей в этом каталоге, а не абсолютным путем.
Например: /home/user/public_html/wp-login.php просто будет иметь wp-login.php в файле .htaccess в этом каталоге. - Перед сохранением необходимо изменить несколько элементов. Сначала измените « /path/to/htpasswd/file/.htpassword » на фактический путь к вашему файлу .htpassword. Например, ваш путь будет выглядеть как /home/username/.htpassword (обязательно замените «username» своим настоящим именем пользователя cpanel.)
- Во-вторых, измените AuthName на что-то значимое. Это заголовок приглашения для входа в систему.
- В-третьих, имя файла должно отражать имя защищаемой страницы. Измените « mypage.html » на фактическое имя файла.
- Нажмите кнопку Сохранить изменения вверху, чтобы сохранить файл.
- Посетите страницу своего сайта, чтобы убедиться, что она запрашивает логин. После того, как вы войдете в систему, сайт, скорее всего, не будет спрашивать вас снова, когда вы вернетесь, так как браузер запоминает ваш предыдущий визит.
Защита паролем ваших страниц с помощью htaccess
Введение
Возможно, вы посещали веб-страницу, на которой появляется диалоговое окно, подобное этому:
Если вы не знаете имя пользователя и пароль для входа, вы можете не получить доступ к странице или сайту — он «защищен паролем». Иногда удобно иметь возможность защитить свои страницы паролем, например:
- Вы создаете новый сайт, но хотите, чтобы вы (и, возможно, некоторые избранные) имели возможность просматривать текущую работу. прогресс.
- У вас есть область вашего сайта, к которой вы никогда не хотите, чтобы широкая публика имела доступ, например, ваша веб-статистика или личные страницы.
- На вашем сайте есть платный (подписной) контент, доступ к которому должны иметь только подписчики.
Apache позволяет довольно легко защитить паролем отдельные файлы, папки или весь сайт. Читайте дальше, чтобы узнать, как это делается.
Как это работает
Чтобы защитить свои страницы паролем, вам необходимо сделать две следующие вещи:
- Создайте на сервере текстовый файл, в котором будут храниться ваше имя пользователя и пароль.
- Создайте специальный файл с именем
.htaccess
в папке, которую вы хотите защитить.
Вот оно! Теперь давайте посмотрим, как выполнить каждый шаг.
Создание файла паролей
Первый шаг — создать простой текстовый файл, в котором будут храниться ваше имя пользователя и пароль, разделенные двоеточием ( :
). Небольшая загвоздка в том, что пароль должен быть зашифровано . К счастью, существует множество бесплатных веб-утилит, которые зашифруют для вас пароль. Попробуйте один из следующих способов:
- Онлайн-инструмент шифрования .htpasswd 4WebHelp
- Генератор паролей Alterlinks .htaccess
- страница шифрования htpasswd htmlite
Просто введите желаемое имя пользователя и пароль на одной из этих страниц и отправьте форму. Вы получите строку, похожую на следующую:
. Фред: p29cmnwl4a0et
Теперь откройте свой любимый текстовый редактор (например, Блокнот или TextEdit), затем скопируйте и вставьте строку имени пользователя/пароля в редактор. Сохраните файл и назовите его .htpasswd
.
Затем загрузите этот файл на свой сайт. Убедитесь, что вы разместили его за пределами корневого веб-сайта вашего сайта, если это возможно, так как вы не хотите, чтобы кто угодно мог просматривать файл! Например, поместите его над папкой public_html
или htdocs
. (Сказав это, Apache часто настроен по умолчанию, чтобы блокировать веб-доступ к файлам, начинающимся с .ht
. Однако лучше перестраховаться, чем сожалеть!)
Если вы не можете поместить свой файл .htpasswd
вне корневого каталога вашего веб-сайта, назовите его так, чтобы его было трудно угадать, например, .htxuymwp
, чтобы люди не могли найти его легко. (Кроме того, полезно начинать имя файла с .ht
; как упоминалось ранее, Apache обычно блокирует доступ к файлам, начинающимся с .ht
.)
Альтернатива: создание файла паролей с использованием
htpasswd
Если у вас есть SSH-доступ к вашему веб-серверу (или вы используете Apache на локальном компьютере), вы можете зашифровать свой пароль и добавить его в свой файл паролей за один раз с помощью утилиты htpasswd
, которая поставляется с Апач. Просто подключитесь к серверу по SSH или откройте окно терминала на локальном компьютере, введите cd в папку, в которой вы хотите создать файл паролей, и введите:
htpasswd -c .htpasswd fred
(где Фред — имя пользователя, которое вы хотите использовать). Вам будет предложено ввести и повторить пароль, после чего для вас будет создан файл .htpasswd
.
Создание файла
.htaccess
Теперь, когда вы создали и загрузили файл паролей, вам нужно сообщить Apache, чтобы он использовал его для защиты ваших страниц или сайта. Это то, что будет делать ваш файл .htaccess
.
Снова откройте текстовый редактор, создайте новый файл и сохраните его как .htaccess
.
Защита папки
Чтобы защитить паролем папку на вашем сайте, вам необходимо поместить в файл .htaccess
следующий код:
AuthUserFile /полный/путь/к/.htpasswd Основной тип авторизации AuthName "Моя секретная папка" Требовать действительного пользователя
/full/path/to/. htpasswd должен быть полным путем к файлу .htpasswd
, который вы загрузили ранее. Полный путь — это путь к файлу из корня тома веб-сервера, например, /home/username/.htpasswd
или C:\wwwroot\username\.htpasswd
. (Если вы не знаете полный путь к вашему сайту или домашнему каталогу, обратитесь за этой информацией в свою веб-хостинговую компанию). , а также все подпапки в этой папке. Поэтому, если вы хотите защитить паролем весь свой сайт, вы должны поместить файл .htaccess
в корневую папку вашего веб-сайта.
Защита файла
Чтобы защитить паролем только один файл в папке, используйте следующий файл .htaccess
:
AuthUserFile /полный/путь/к/.htpasswd Основной тип авторизации AuthName "Моя секретная страница" <Файлы "mypage.html"> Требовать действительного пользователя файлы>
Это защитит паролем только файл mypage.html
в папке, в которую вы поместили файл . htaccess
.
Загрузка файла
.htaccess
После создания .htaccess
, загрузите его на свой веб-сайт, поместив в папку (или папку, содержащую файл), которую вы хотите защитить.
Тестирование
Теперь используйте веб-браузер, чтобы открыть папку или файл, которые вы защитили. Вы должны увидеть диалоговое окно пароля, подобное показанному в начале этого руководства. Введите имя пользователя и (незашифрованный) пароль, который вы выбрали ранее, и вам должен быть предоставлен доступ к вашей папке или файлу!
(Кстати: с этим типом защиты паролем вы по-прежнему будете иметь доступ к защищенным паролем вещам, пока не перезапустите браузер.)
Проблемы?
Если вы не можете получить доступ к своим материалам, а диалоговое окно продолжает появляться, проверьте, правильно ли вы ввели имя пользователя и пароль. Если это все еще не работает, проверьте путь к вашему файлу .htpasswd
на сервере — убедитесь, что путь, указанный в директиве AuthUserFile
, правильный. Также убедитесь, что оба файла .htpasswd
и .htaccess
доступны для чтения пользователем веб-сервера ( chmod 644
должен подойти для серверов UNIX/Linux/FreeBSD).
Если защита паролем не работает (т. е. вы все еще можете получить доступ к своим материалам без необходимости вводить имя пользователя/пароль), убедитесь, что вы загрузили файл .htaccess
в нужную папку. Также убедитесь, что ваш веб-сервер поддерживает защиту паролем .htaccess
(это должен быть сервер Apache, и администратор вашего сервера должен включить переопределение AuthConfig
для вашего сайта).
Защита паролем других материалов
- Если вы хотите защитить паролем другие папки (которые не находятся в текущей защищенной папке), просто скопируйте
.htaccess
в новую папку для защиты. - Чтобы защитить паролем более одного файла в одной папке, просто создайте больше блоков
. htaccess
— например:
AuthUserFile /полный/путь/к/.htpasswd Основной тип авторизации AuthName "Моя секретная страница" <Файлы "mypage.html"> Требовать действительного пользователя файлы> <Файлы "myotherpage.html"> Требовать действительного пользователя файлы>
Добавление дополнительных имен пользователей и паролей
Вы не ограничены только одним именем пользователя/паролем. Если вы хотите добавить другие имена пользователей и пароли, просто повторите описанную выше процедуру «Создание файла паролей», но добавляйте каждую новую строку имени пользователя/пароля в существующий файл .htpasswd
, например:
. Фред: p29cmnwl4a0et Линда: vwp45xakfh89
В качестве альтернативы, если вы используете htpasswd
для создания своих паролей, как описано ранее, вы можете добавить дополнительных пользователей с помощью команды:
htpasswd .htpasswd linda
(где linda
— имя пользователя, которое вы хотите добавить).