WordPress — одна из популярнейших CMS, поэтому не удивительно, что и взломать сайты на WordPress пытаются достаточно часто.
Пост будет дополняться
Для того, чтобы не стать жертвой хакеров, нужно следовать некоторым правилам
- Регулярно обновлять сам WordPress, установленные плагины и темы. Разработчики, как правило, довольно-таки оперативно прикрывают найденные хакерами дыры в безопасности.
- Надо быть очень аккуратным с использованием плагинов и тем. Если они давно не обновлялись, вероятность их «дырявости» многократно возрастает. В нуленых плагинах и темах вероятность нахождения вредоносного кода крайне высока, поэтому использовать их не рекомендую. То же самое с плагинами из сомнительных источников, не из официального репозитория.
- Использовать корректные права доступа к файлам и папкам WordPress. Не надо ставить на директории права доступа 777, а на файлы 666. Этим вы позволяете делать с файлами и директориями кому угодно и что угодно. Права доступа к директориям должны быть 750 или 755, к файлам — 644. Для файла с настройками wp-config.php желательно установить права 660.
- Не используйте в качестве логина администратора «admin», «administrator» или что-то подобное. Придумайте уникальный логин. Это затруднит подбор пароля злоумышленниками.
- Однако, как оказывается, поменять логин администратора сайта оказывается не достаточно, т.к. логин админа можно очень просто узнать, перейдя по адресу http://вашсайт/?author=1 (по усолчанию администратору WordPress соответствует ID=1). Вас перекинет на http://вашсайт/autor/adminlogin. Красным выделен логин админа. Решить проблему можно, добавив в .htaccess следующие строки:
12RewriteCond %{QUERY_STRING} author=\dRewriteRule ^ /? [L,R=301]
Кроме того, в используемой теме может выводиться логин админа в качестве автора потов. Строки, отвечающие за это, необходимо будет убрать из шаблона.
Подбор пароля (брутфорс)
Один из способов борьбы с брутфорсом (подбором пароля) в WordPress — ограничить доступ к wp-login.php, разрешив его только с определенных IP. Для этого в .htaccess в корне сайта надо добавить строки
1 2 3 4 5 6 |
<Files wp-login.php> Order Deny,Allow Deny from all allow from домашний_ip allow from рабочий_ip </Files> |
Другой способ — использование специальных плагинов. Например, IThemes Security (бывший Better WP Security). После нескольких неудачных попыток входа на сайт плагин блокирует IP, с которого была предпринята попытка атаки. Кроме этого, плагин может отслеживать изменения в файлах — удобная функция для поиска и вычистки вредоносного кода, если сайт всё же взломали. У плагина есть и другие функции, о которых можно узнать на странице плагина по ссылке выше.
Частой мишенью атаки злобных хацкеров становится файл xmlrpc.php. Чтобы избежать проблем, достаточно закрыть доступ к файлу с помощью нескольких строк в .htaccess
1 2 3 4 |
<Files xmlrpc.php> Order Deny,Allow Deny from all </Files> |