Перейти к содержимому

Как поставить пароль на сайт

  • автор:

Как защитить веб страницу паролем

В создании этой статьи участвовала наша опытная команда редакторов и исследователей, которые проверили ее на точность и полноту.

Команда контент-менеджеров wikiHow тщательно следит за работой редакторов, чтобы гарантировать соответствие каждой статьи нашим высоким стандартам качества.

Количество просмотров этой статьи: 18 496.

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

Защита сайта с помощью .htaccess и .htpasswd

В данной статье будет рассмотрен самый простой и доступный способ защиты — базовая аутентификация.

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

Рассмотрим, как работает базовая аутентификация.
При обращении посетителя в защищаемую директорию, сервер Apache в ответ на запрос посылает заголовок с кодом 401 (401 authentication required header). Браузер посетителя принимает заголовок с кодом 401 и выводит окно с полями для ввода имени пользователя и пароля. После ввода имени и пароля эти данные отсылаются назад серверу, который проверяет имя пользователя на предмет нахождения в специальном списке, а пароль на правильность. Если все верно, то посетитель получает доступ к ресурсу. Вместе с заголовком браузеру посылается специальной имя, называемое областью действия. Браузер кэширует не только имя и пароль, чтобы передавать их при каждом запросе, но и область действия. Благодаря этому, ввод имени и пароля в защищаемой директории осуществляется только раз. В противном случае их необходимо было бы вводить при каждом запросе к защищаемой директории. Кэширование параметров аутентификации (имя, пароль, область действия), обычно осуществляет только в пределах одного сеанса.

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

WEB-сервер Apache поддерживает еще один вид защиты — digest-аутентификацию. При digest-аутентификации пароль передается не в открытом виде, а в виде хеш-кода, вычисленному по алгоритму MD5. Поэтому пароль не может быть перехвачен при сканировании трафика. Но, к сожалению, для использования digest-аутентификации необходимо установить на сервер специальный модуль — mod_auth_digest. А это находится только в компетенции администрации сервера. Также, до недавнего времени, digest-аутентификация поддерживалась не всеми видами браузеров.

Защита сайта — это просто

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

1. WEB-сайт и FTP-доступ к нему.
2. Права на создание файлов .htpaccess и организацию защиты с помощью них.
3. Утилита генерации паролей htpasswd.exe

Проверка работы файла .htaccess на сервере

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

Удобно создавать файлы .htaccess с помощью встроенного редактора в оболочках Far, WindowsCommander, TotalCommander и т.п., а также в редакторе Блокнот.

Чтобы блокнот не подставлял автоматически расширение txt, в диалоге сохранения в выпадающем списке «тип файла» следует выбрать опцию «Все файлы».

Перед тем как сохранить файл, впишите в него следующие строки:

Проверка работы .htaccess

Затем, через FTP-доступ, перепишите файл .htaccess на сайт, в ту директорию, которую вы хотите защитить.

Действие файлов .htaccess распространяется не только на ту директорию, где лежит файл, но и на все поддиректрии, лежащие уровнем ниже.

Далее через браузер обратитесь к этой директории. Если Вы защищаете директорию admin и переписали туда файл .htaccess, то для проверки Вам следует вписать в адресную строку браузера следующий URL: http://www.mysite.ru/admin/.

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

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

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

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

Файл с паролями создается утилитой htpasswd.exe. Если у Вас на машине установлен WEB-сервер Apache, то данная утилита находится в директории с установленным Apache-ем в подкаталоге bin.

Если у Вас не установлен Apache, то утилиту htpasswd.exe можете скачать по ссылке: http://www.softtime.ru/files/htpasswd.zip.

Для работы с утилитой htpasswd.exe необходим интерфейс работы с командной строкой. Интерфейсом работы с командной строкой обладают такие программы как Far, WindowsCommander и т.п. Здесь будет рассмотрена работа с командной строкой с помощью утилиты cmd, которая входит в поставку Windows 2000/XP и т.п.
Нажмите «Пуск»->»Выполнить», введите в строку ввода cmd и нажмите ОК. Вам откроется окно утилиты CMD.

Далее необходимо перейти в директорию, где находится утилита htpasswd.exe. Допустим, сервер Apache установлен в директории с:/Apache2, тогда введите в командную строку команду: cd../../apache2/bin и нажмите ввод.

Вы перешли в директорию с:Apache2 in. Теперь нужно дать команду на создание файла с паролем. Введите в командную строку следующее:

* -cm — это ключи для утилиты. Ключ с — указывает, что необходимо создать новый файл с паролями. Если файл с таким именем уже существует, то он будет перезаписан. Ключ m — определяет шифрование по алгоритму MD5.
* .htpasswd — имя файла с паролями (можете использовать любое имя).
* admin — имя посетителя, которому будет разрешен доступ в закрытую область сайта.

В ответ, должен появится запрос на ввод пароля и его повтор. Если все правильно, то в завершении появится сообщение: Adding password for user admin. И в директории c:Apache2 in появится файл .htpasswd, к котором будет находиться строка с именем пользователя и хеш-кодом его пароля. Для того, что бы в тот же файл .htpasswd добавить еще одного пользователя следует убрать ключ -c из команды запуска утилиты htpasswd.exe

Если файл с паролями не был создан, то возможно, некоторые ключи утилиты не поддерживаются в Вашей операционной системе. Например, иногда не поддерживается ключ m. В этом случае, Вам нужно ввести htpasswd -c .htpasswd admin
Для того, чтобы посмотреть ключи и параметры работы утилиты введите htpasswd.exe /? Вам будет выдано описание интерфейса.

Итак, файл с паролями создан. Теперь Вам необходимо переписать его на сервер. Файлы с паролями очень желательно класть выше корневой директории сайта — туда, куда не будет доступа посетителям.
Если это невозможно, то файлы с паролями следует обязательно защитить. Это можно сделать с помощью файлов .htaccess. Чтобы защитить файлы с паролями создайте файл со строками, представленными в следующем листинге.

Защита файлов .htpasswd

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

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

Для защиты директории могут использоваться следующие директивы:

* AuthType — Тип используемой аутентификации. Для базовой аутентификации эта директива должна иметь значение: Basic
* AuthName — Имя области действия аутентификации. Текст, помогающий посетителю понять, куда он пытается получить доступ. Например, может быть написано: «Private zone. Only for administrator!»
* AuthUserFile — путь к файлу с паролями (.htpasswd).
* AuthGroupFile — путь к файлу групп, если он существует.
* Require — Одно или несколько требований, которые должны быть выполнены для получения доступа к закрытой области.

Пример файла .htaccess

Следует более подробно описать директивы AuthUserFile и AuthGroupFile. В них прописываются абсолютные пути к соответствующим файлам от корня сервера.

Относительные пути работать не будут!

Путь от корня сервера, можно узнать, спросив у администрации сервера, либо можно попробовать выяснить его самим. Для этого выполните функцию phpinfo(). На экран будет выведена фиолетовая таблица. Значение абсолютного пути от корня сервера можно посмотреть в переменных: doc_root, open_basedir, DOCUMENT_ROOT.
Директива Require определяет кому разрешен доступ к закрытой области. Например,

* require valid-user — разрешен доступ всем прошедшим проверку
* require user admin alex mango — разрешен доступ только посетителям с именами admin, alex, mango. Естественно, они должны пройти аутентификацию.
* require group admins — разрешен доступ всем пользователям из группы admins

Файлы групп

Если к защищаемой области сайта должна иметь доступ большая группа людей, то удобно объединить людей в группы, и разрешать доступ, определяя принадлежность посетителя к группе.
Формат файла групп очень прост. Это текстовый файл, каждая строка, которой описывает отдельную группу. Первым в строке должно идти название группы с двоеточием. А затем через пробел перечисляются посетители, входящие в группу.

Пример файла групп

В группу Admins входят посетители с именами admin, alex, mango. А группу Users входят посетители с именами guest, user, max23.

Как поставить пароль на сайт или каталог в Nginx

Как поставить пароль на сайт или каталог в Nginx

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

Создаем файл с паролями

С помощью htpasswd

Для этого, устанавливаем следующий пакет:

После чего, создаем файл с паролем .htpasswd:

/etc/nginx/.htpasswd — это путь к файлу авторизации
sysadmin — это имя пользователя
После ввода данной команды, вам нужно будет напечатать желаемый пароль в консоли и подтвердить его еще раз.
В результате будет создан файл .htpasswd содержащий в себе логин и хеш пароля (в нашем примере это пароль 12345). Вот его содержимое:

С помощью онлайн инструментов

Если вы не хотите устанавливать дополнительный софт, то можно создать файл воспользовавшись онлайн сервисом, например этим:
http://www.htaccesstools.com/htpasswd-generator/
Вводим туда необходимые данные:

  • username — желаемое имя пользователя
  • password — желаемый пароль

И жмем кнопку Create .htpasswd file
В результате получаем аналогичную с предыдущим пунктом строку, содержащую в себе логин и хеш пароля. Далее необходимо создать файл /etc/nginx/.htpasswd и вставить в него эту строку, которую нам сформировал сайт.

Закрываем паролем доступ к определенному каталогу

Для того, чтобы закрыть доступ только к определенному каталогу сайта, необходимо в конфиг nginx (по умолчанию он находится в /etc/nginx/sites-available/default.conf ), внести следующие строки:

После внесенных изменений, сохраняем файл и применяем новые для Nginx настройки командой:

Таким образом, при попытке обратиться к каталогу phpMyAdmin на вашем сайте, будет выведено сообщение «Restricted» и форма для ввода логина и пароля.

Закрываем паролем доступ к сайту целиком

Если же необходимо закрыть доступ к сайту целиком, чтобы посещать его могли только те, кто имеет логин и пароль, то необходимо внести следующие изменения в конфиг Nginx (по умолчанию он находится в /etc/nginx/sites-available/default.conf ):

После внесенных изменений, сохраняем файл и применяем новые для Nginx настройки командой:

После этого, при попытке открыть любую страницу вашего сайта, должно будет появиться окошко с надписью «Restricted» и формой для ввода логина и пароля.

Защищаем сайт и директории паролем с помощью htaccess и htpasswd

http authentification

Доступ по http и https к содержимому любого каталога на сервере можно ограничить с помощью htaccess и htpasswd. При обращении к каталогу через браузер пользователю будет выводиться диалог, запрашивающий логин и пароль. При неверном их вводе доступ предоставлен не будет — отобразится ошибка 403.

Данный способ достаточно прост, но в тоже время является очень надежным, при условии использования «нормального хостинга», так как данный тип защиты паролем через htaccess и htpasswd строится средствами сервера Apache.

Настройка защиты с помощью htaccess и htpasswd

Для работы нам необходимо несколько вещей:

  • Доступ к сайту по FTP;
  • Наличие прав на редактирование .htaccess ;

Для начала нам необходимо создать файл .htaccess. Проще всего это сделать с помощью обычного блокнота Windows. Нажимаем на рабочем столе правой кнопкой мыши, затем Создать — Текстовый документ. Открываем созданный текстовый документ, затем Файл — Сохранить как. Название меняем на .htaccess (точка перед названием обязательна!), тип файла «Все файлы» (иначе создастся .htaccess.txt).

Создание .htaccess

Теперь нам необходимо создать файл с логинами и паролями для HTTP авторизации. Для этого распаковываем скаченный ранее файл htpasswd.exe и перемещаем его для удобства в корень диска C:.

Запускаем командную строку Пуск — Выполнить — cmd. Пишем cd C:/ , затем нажимаем Enter.

Теперь пишем следующую команду: htpasswd -cm .htpasswd admin

  • htpasswd — наша скаченная программа
  • -cm .htpasswd — параметр для создания файла .htpasswd и шифрования пароля с помощью MD5
  • admin — имя пользователя, для которого создаем пароль

После выполнения команды необходимо ввести и подтвердить пароль для пользователя.

Создание .htpasswd

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

Теперь нам необходимо загрузить наши файлы .htaccess и .htpasswd на сервер.

.htaccess загружаем в директорию, которую необходимо защитить (будут автоматически защищены все подпапки), а .htpasswd рекомендуется загружать в другую директорию.

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

AuthUserFile /home/u304720/***.ru/www/adm/.htpasswd — здесь указывается относительный путь до нашего файла .htpasswd. Если вы его не знаете, то его можно узнать через phpinfo() .

Для этого создаем файл, например, info.php. Пишем в него следующий код:

Сохраняем файл и загружаем в директорию, где лежит .htpasswd. Заходим по адресу вашего сайта, например, https://pogrommist.ru/adm/info.php и ищем строку «SCRIPT_FILENAME». В ней отображается абсолютный путь до файла info.php.

phpinfo

Копируем все, кроме названия файла и вставляем в .htaccess. После обязательно удалите info.php с сервера!

Все, сохраняем файл .htaccess и загружаем на сервер (если редактировали на локальном компьютере).

HTTP аутентификация

Теперь, если попробовать зайти в папку на сервере, то будет выскакивать окошко с запросом логина и пароля. Сессия хранится до закрытия браузера.

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

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