Посмотрим статистику.
Для начала устанавливаем плагин Activity Log (логгирование действий пользователей), активируем
И видим следующие картину

Кто все эти люди и откуда они знают мой логин?
Это не люди мучают клавиатуру с ручным подбором паролей, это боты (зараженные компьютеры). Точнее даже не компьютеры, а устройства типа микроволновки и холодильника. Сейчас везде производители ставят процессоры и выход в интернет, на таких устройствах практически нет никакой защиты, их взламывают и они вливаются в ряды ботов.
Еще есть «банды умных лампочек» – smart-лампы с управлением со смартафона через Wi-Fi. Тоже хорошо взламываются и начинают работать на чужих дядей.
WordPress достаточно легко выдает логин (логины) всем желающим по запросу http://site.ru/?author=1, где site.ru – домен Вашего сайта
Цифра 1 на конце запроса – это ID пользователя, перебирая все цифры, мы получаем список всех логинов пользователей.
Еше одно место, где видно настоящий логин – это архив статей автора. Несмотря на указанный другой ник “ГудВин” – в адресной строке показывается реальный логин admin для входа в систему.

Читаем статью Как скрыть логин автора поста
Более того, при авторизации с правильным логином и неправильным паролем – WordPress радостно подтверждает правильность введенного логина, скан ниже.

Что можно сделать?
Закрываем возможность выдачи логинов по запросу http://site.ru/?author=1
внесем изменения в файл .htaccess в корне сайта. Добавим в модуль переадресации
#lock info author
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{QUERY_STRING} ^/?author=([0-9]*)
RewriteRule ^(.*)$ http://site.ru/? [L,R=301]
В качестве адреса можно указать специальную страницу вида no-login.html, по крайней мере Вы будете сразу видеть в Метрике/Аналитики количество попыток подбора. Если указана только главная страница – то сложно сразу понять, какие заходы с поиска/рекламы, а какие с переадресации.

ВАЖНО (для файла .htaccess в корневой директории для WordPress):
1. Для WordPress все свои инструкции необходимо указывать ниже пределов модуля
# BEGIN WordPress
# END WordPress
Внутри этой конструкции сам движок WordPress пишет свои инструкции
2. Если Вы по ошибке укажете дополнительные инструкции внутри этого модуля – то WordPress их затрет
Можно использовать плагин Webcraftic Clearfy, который делает тоже самое

Закрываем возможность выдачи пользователей по запросу http://site.ru/wp-json/wp/v2/users/
Да, в WordPress есть такое хитрое REST API JSON, через запрос к которому можно получить список пользователей сайта.
WordPress REST API (или коротко WP API) позволяет пользователям (HTTP Клиентам) удаленно взаимодействовать с сайтом: отправлять запросы и получать ответы. Ответы приходят в JSON формате.
Так, например, можно получить посты, рубрики, комменты сайта и т.д.
Кроме того, такие данные можно создавать/изменять/удалять. Делается все это через URL запросы, так называемые «маршруты». В WordPress, есть готовые маршруты из коробки, но их также можно дополнить, создав свои собственные.
REST API полноценно был добавлен в ядро WordPress в версии 4.7.

Красота какая.
При запросе http://site.ru/wp-json/wp/v2/users/6 мы получим уже более подробно по пользователю с ID=6
Что все-таки радует – запрос отдает Name и Slug, т.е Ник автора и часть url адреса, по которому отдаются посты автора.
Логин будет в этом списке, если Вы при регистрации оставили всё как есть – тогда Name будет совпадать с логином и подборщикам логин/пароль будет проще.
Если Вы единоличный автор своего блога – то лучше этот запрос скрыть. Но как? Советами отключить REST API JSON лучше не пользоваться – отключить можно (даже есть плагины), но перестанет работать часть плагинов (например, Redirection) и часть функций WordPress,
Но выход есть – можно отключить показ всех маршрутов не авторизированным пользователям, добавляем код в function.php
## Закрывает все маршруты REST API от публичного доступа
add_filter( 'rest_authentication_errors', function( $result ){
if( empty( $result ) && ! current_user_can('edit_others_posts') ){
return new WP_Error( 'rest_forbidden', 'You are not currently logged in.', array( 'status' => 401 ) );
}
return $result;
});Теперь намного лучше (после выхода из админки)

Можно использовать в виде готового плагина.
Закрываем показ логина автора в адресной строке, если Вы единственный автор
добавляем одну строку в файл .haccess
#lock info author
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{QUERY_STRING} ^/?author=([0-9]*)
RewriteRule ^(.*)$ http://site.ru/? [L,R=301]
Redirect 301 /author http://site.ru
Если Вам нужно показать автора поста (например, у блока несколько авторов) и не показать реальный логин – то смотрим статью Как спрятать логин автора поста
Сменить стандартный логин администратора
Не просто переименовать, а сделать новый логин с новым ID и изменить его отображение. Т.е. отображение пользователя на сайте (как например, автора статей) не должно совпадать с его логином для входа в систему. Изменяется в настройках пользователя.

Старый (скомпроментированный) логин можно удалить или временно заблокировать с помощью плагина Lock User Account (в списке Действий помимо Удалить еще появится выбор Lock и UnLock).

| Подпишитесь в VKontakte - нажмите кнопку | ||
| Подпишитесь в Telegram - нажмите кнопку | ||
| Наша группа ODNOKLASSNIKI |
Вы можете сохранить ссылку на эту страницу себе на компьютер в виде htm файла
Пишите на электронную почту (тема и email будут добавлены автоматически в письмо)
В Вашем браузере должна быть настроена обработка ссылок mailto
site_post@bk.ru
или просто скопируйте адрес e-mail
Почитать в разделе
Защита WP
(Читать полностью...)
- Всего статей в разделе: 12
- Показано статей в списке: 11
- Сортировка: название по алфавиту
Бан хакеров по IP для WordPress
(Читать полностью...)
Блокируем ботов-подборщиков через fail2ban
80% всех атак ботов на WordPress идут на вход в административную панель. Наша задача - такие IP отправить в бан. Используем плагин WP fail2ban.
Плагин делает важную вещь — он выводит в лог /var/log/auth.log (это один из системных логов Linux) каждую попытку авторизации на сайте (настройками можно изменить). Т.е. не создается дополнительный лог-файл - а идет запись в один общий системный лог Linux. Это удобно, если у Вас несколько сайтов на VPS, всё ошибки входа по всем сайтам будут записываться в один общий файл.
И не нужно дополнительно под каждый сайт настраивать WP fail2ban:) ВАЖНО: можно вообще "спрятать" админку от злых ботов
Меняем адрес административной панели...(Читать полностью...)
Варианты основных хакерских атак на Ваш сайт
(Читать полностью...)
Двухфакторная аутентификация WordPress
(Читать полностью...)
Закрываем папки и файлы WordPress с помощью Apache
Используем web-сервер Apache для блокировки доступа извне ВАЖНО: всё нижеперечисленное будет работать, если Вы конечно, используете сервер Apache. Если Вы используете связку NginX и PHP-FPM (сервера Apache тут нет!) все эти инструкции работать не будут! Сервер Apache не участвует в обработке запросов!
Закроем файл wp-login.php
Мы можем спрятать вход в административную панель. И ввод логина/пароля не будет уже использовать напрямую файл wp-login.php.
Но сам файл wp-login.php конечно продолжает существовать и работать, просто теперь WordPress при его запросе показывает ошибку 404. Но как мы помним, ботнетов много - и они по прежнему будут загружать Ваш сервер PHP на обработку...(Читать полностью...)
Защита базы данных сайта MySql
(Читать полностью...)
Защита текста и картинок от копирования
(Читать полностью...)
Как сбросить пароль администратора WordPress
(Читать полностью...)
Как скрыть логин автора поста
(Читать полностью...)
Переводим сайт WordPress на https
(Читать полностью...)
Плагины для архивирования и переноса сайта
(Читать полностью...)















