С другой стороны, при заходе в административный раздел WordPress, пользователю не надо вводить капчу (картинку с цифрами или буквами), чтобы сделать попытку входа. Это позволяет злоумышленникам беспрепятственно подбирать пароли. А используя современные методы, скорость подбора пароля может доходить до десятков тысяч попыток в день, приходящих с разных ip адресов. Что нивелирует защиту от пароля небольшой длины. Но выход есть - установить пароль на административную папку WordPress через файл конфигурации ".htaccess". Тогда чтобы увидеть форму авторизации придётся ввести пароль к папке. Ещё без ввода пароля не будет доступа к функциям администрирования. Следовательно, защита сайта будет выше.
Закрытие паролем административной папки
В статье "Установить пароль на папку сайта через htaccess" можно найти более подробное объяснение о том, как сделать защиту папки. Сейчас же мы рассмотрим какие именно папки и файлы в WordPress стоит установить доступ по паролю.Для защиты WordPress стоит установить доступ по паролю на файл "wp-login.php" в корневой папке сайта и папку "/wp-admin/". Для этого в файле ".htaccess" в корневой папке сайта нужно добавить следующие строки
<Files "wp-login.php">
AuthUserFile /path_to_folder/.htpasswd
AuthName "Authentication Required"
AuthType Basic
Require valid-user
</Files>
<Files "/wp-admin/">
AuthUserFile /path_to_folder/.htpasswd
AuthName "Authentication Required"
AuthType Basic
Require valid-user
</Files>
<Files "xmlrpc.php">
AuthUserFile /path_to_folder/.htpasswd
AuthName "Authentication Required"
AuthType Basic
Require valid-user
</Files>
После задания такого кода при заходе в административную панель или обращению к любому скрипту, который лежит в папке "/wp-admin/" (или вложенных в неё папок), будет появляться окно для ввода логина и пароля. Разберём значение директив:
- AuthType - может принимать значения "Basic" или "Digest" - это два разных типа защиты. Тип "Basic" слабый, потому что не использует ключ шифрования при передаче данных. Тип "Digest" обеспечивает повышенный уровень защиты, но его редко применяют.
- AuthName - надпись над полем ввода пароля. Можно написать что угодно.
- AuthUserFile - путь к файлу ".htpasswd".
- Require - определяет тип аутентификации: "valid-user" - могут войти все пользователи, правильно указавшие пароль (требует файла AuthUserFile); "group" - могут войти пользователи, которые входят перечисленные в группы (требует файла AuthGroupFile); "user" - смогут войти только те пользователи, имена которых указаны после директивы.
htpasswd -c /path_to_folder/.htpasswd user_name
Объяснение по порядку:
- Ключ "-c" означает создание файла при его отсутствии. Значение всех параметров можно посмотреть в документации htpasswd
- Обратите внимание на директорию для хранения файла: "/path_to_folder/.htpasswd". Желательно чтобы она находилась вдалеке от сайта, чтобы было сложнее достать файл и подобрать пароль. Не стоит класть файл "htpasswd" с паролем в корневую папку сайта.
- "user_name" необходимо заменить на логин.
- После ввода команды попросят задать пароль и подтвердить