Как защитить папки и файлы на сайте паролем через .htaccess

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

Я же решил написать ещё более простую инструкцию...

Где применяется

Использовать данный метод можно всегда, когда нужно от лишних глаз пользователей и разных программных ботов закрыть файлы, дирректории (папки на сервере) или, скажем, админку в WordPress.

Стойкость высокая обеспечивается лишь серьёзным паролем, простые пароли можно вскрывать простым подбором, поэтому постарайтесь придумать пароль посложнее. В идеале: цифры, буквы заглавные и маленькие латинского алфавита, а также разные специальные символы, как то «тире», «подчёркивание», «дефис», «собака», «кавычки», «процент» и прочие.

Также, этот способ защитит от подбора пароля в основную админку путём двойной авторизации. Пока не будет пройдена первая авторизация со стороны сервера, к второй путник просто не будет допущен. Это будет отличной защитой для админки Вордпресса в папке WP-admin.

Ещё можно закрыть свой сайт на время агрессивной DDOS атаки на весь сайт или туже админпанель, либо определённый раздел вебсайта. При этом, доступ для самого админа или редакторов, вебмастера, программиста может сохраниться при условии знания ими логина и пароля.

Вариантов на самом деле много: от доступа в платную зону и скачивания файлов оттуда до распределения зон пользования разными сотрудниками.

Создаём файлы

Нам нужно создать всего два файла и поместить их в ту директорию, которую мы хотим защитить. В случае с ограничением доступа в админку Вордпресса, нужно добавить их в папку WP-ADMIN на сервере, в случае защиты всего сайта (домена) кладём в корневую директорию.

Итак, открываем любой текстовый редактор, например, Notepad++ и создаём пока два пустых файла: .htaccess и .htpasswd . Точки в начале обязательны. Таким образом, это текстовые файлы без имени, но с разными расширениями.

В .htaccess вставляем вот такой текст:

AuthName «Введите логин и пароль:»
AuthType Basic
AuthUserFile /home/users/p/login/domains/site.ru/wp-admin/.htpasswd
require valid-user

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

Как узнать полный путь от корня сервера

Это можно сделать тремя способами:

  • У поддержки хостинга;
  • С помощью глобальной функции phpinfo ();
  • Угадать. И это не шутка! В большом количестве случаев на обычном хостинге путь будет иметь вид: /home/users/p/login/domains/site.ru/wp-admin/, где login — это имя пользователя хостинга, а вторая выделенная цветом часть — просто путь на самом сайте с его доменом в начале без всяких http и https.

Но всё же надёжнее всего узнать через функцию phpinfo. Создаём любой файл в нужной нам папке на сервере, главное, чтобы расширение файла было .php . Например: siteinfo.php . Его опять же можно создать с помощью любого текстового редактора, Notepad++ я рекомендую всегда!

В этот файл пишем всего одну строчку:

<?php phpinfo (); ?>

Если возникла сложность с созданием столь простого скриптика или просто лень, то можете скачать его по этой ссылке.

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

Как защитить папки и файлы на сайте паролем через .htaccess

В ней в поддаблице Apache Environment находим строку SCRIPT_FILENAME (лучше воспользоваться поиском в браузере путём одновременного нажатия клавиш CTRL+F) и ввода в открывшееся в правом верхнем углу окно поиска скопированную комбинацию: SCRIPT_FILENAME).

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

Предварительная проверка: если на этом этапе всё сделано правильно, значит при обращении к нужной папке через браузер уже сейчас должно всплывать окошко с предложением ввести логин и пароль. Его внешний вид зависит от самого браузера, но это будет примерно так:

Как защитить папки и файлы на сайте паролем через .htaccess

Но как же так, мы же его не указали ни имя пользователя, ни пароль...

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

Логин и пароль

В открытом виде можно записать только имя пользователя, пароль там вписывается только в зашифрованном виде посредством шифрования md5.

Чтобы не изобретать велосипед и не заморачиваться со скачиванием программ и работой с командной строкой, просто идём на сайт htaccessTools и генерируем нужный код:

Как защитить папки и файлы на сайте паролем через .htaccess

Полученную строчку вставляем в файл htpasswd, сохраняем его и вуаля! Радуемся защищённой паролем директорией и файлами в ней.

Примечания

  • Можно создавать неограниченное количество пользователей, просто добавляя код для каждого в новой строке;
  • Файл .htpasswd лучше хранить отдельно от .htaccess, если кроме вас ещё кто-то будет иметь доступ к защищённому разделу;
  • Все подпапки и файлы в них также будут закрыты;
  • В случае утраты пароля при внезапной амнезии, да упаси Вас Всевышний, восстановить его невозможно или крайне сложно. Лучше просто создать новый и заменить нужную строчку;
  • При применении данного способа для защиты админпанели движка Вордпресс, он защитит от массового подбора пароля в стандартной форме входа WP, что значительно снизит нагрузку при атаке хакерами и ботсетью.


Подпишитесь на обновления блога

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


Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.