Рано или поздно к панели управления любого сайта могут попробовать подобрать пароль, особенно если используется одна из популярных CMS. Если пароль сложный, вероятность его подбора крайне мала. Более того, даже пароли состоящие только из цифр (не 12345) вполне надежны. Однако здесь проблема не только в безопасности.
Во первых, многие CMS записывают неудачные попытки входа в лог ошибок, который со временем может стать достаточно большим.
Во вторых, очень частые попытки входа могут привести к большой нагрузке на сервер. У меня был случай, когда в результате подобных попыток подбора на небольшом сайте нагрузка превысила лимиты хостинга, в результате сайт был заблокирован. После добавления пароля на каталог панели управления, нагрузка ушла.
Закрыть саму возможность войти в админку для всех кроме администратора можно настроив запреты по IP (в итоге можно и самому туда не попасть в нужный момент), переместив админку в другой каталог (правка кода CMS), или добавив еще одну пару логин/пароль на уровне сервера с помощью файла .htpasswd. Вот о третьем способе здесь подробнее.
Что понадобится для создания .htpasswd
- Доступ к хостингу по FTP
- Узнать путь к папке от корневого каталога сервера. Для этого в каталоге, который нужно защитить создаем php файл с любым именем (например, 1.php) и следующим содержимым:
<?php echo $_SERVER['DOCUMENT_ROOT']; ?>
Открываем этот файл через браузер и получаем путь к корню сайта, после которого нужно добавить требуемый каталог и файл. - Генератор пароля для .htpasswd
Действия
1. Создаем в каталоге, который необходимо защитить два фйла - ".htaccess" и ".htpasswd", в первом будет прописан путь к .htpasswd, во втором логин и пароль в зашифрованном виде. Если файл ".htaccess" уже существует в каталоге, просто добавьте путь в конце файла.
Содержимое .htaccess:
AuthUserFile /home/user/public_html/admin/.htpasswd
AuthName "Nuzhen parol"
AuthType Basic
Require valid-user
AuthUserFile - путь к файлу с паролем от корня сервера
Пример содержимого .htpasswd: (Для генерации логина и пароля можете воспользоваться формой ниже)
user:{SHA}4kO/dXKsj4xoyPvDDzwVnIM+jpY=
Если все сделано правильно, при попытке зайти в панель управления Вы увидете вот такой запрос логина и пароля:
.htpasswd генератор
Выберите формат ХЕШ-пароля, введите логин и пароль (можно не сложный):
Спасибо вам огромное. Только с помощью вашего сайта удалось сделать эту чертову защиту. Вставляла в файл .htaccess содержимое с других сайтов и у меня это почему-то не работало. Вставила ваше и все в ажуре. Удачи вам!
Не подошел ваш .htaccess. Он блокирует весь сайт, а не админку. Надо
<Files wp-login.php>
AuthName «Access Denied»
AuthType Basic
AuthUserFile /home/httpm/web/.htpasswd
require valid-user
Спасибо за Ваш пример. Тот вариант, что в статье, для защиты каталога