Блог // Как защитится от взлома сайта на Wordpress

Wordpress разработка, Пт, 04/22/2016 - 09:24

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

1. Отключаем возможность редактирования темы через консоль WordPress

По умолчанию у админов есть возможность редактировать файлы темы и плагинов через админку. Для того чтобы отключить эту возможность нужно добавить в файл wp-config.php строку:

define('DISALLOW_FILE_EDIT', true);

2. Дополнительная защита с помощью Nginx

Можно добавить специальные правила в блок «location / {}» которые помогут заблокировать злоумышленника, если в $_GET параметрах будет набор символов:

if ($query_string ~* "base64_encode[^(]*\([^)]*\)"){
return 403;
}

if ($query_string ~* "(<|%3C)([^s]*s)+cript.*(>|%3E)"){
return 403;
}

if ($query_string ~* "GLOBALS (=|\[|\%[0-9A-Z]{0,2})"){
return 403;
}

if ($query_string ~* "_REQUEST (=|\[|\%[0-9A-Z]{0,2})"){
return 403;
}

if ($query_string ~* "(eval|duplicate|base64|substring|preg_replace|create_function)") {
return 403;
}

if ($query_string ~* "concat.*\("){
return 403;
}

if ($query_string ~* "union.*select.*\("){
return 403;
}

if ($query_string ~* "union.*all.*select"){
return 403;
}

if ($http_user_agent ~* “Indy Library|libwww-perl|wget”) {
return 403;
}

Дополнительные блоки для защиты:

location ~ wp-config.php {
deny all;
}

3. Отключить регистрацию новых пользователей

Отключить регистрацию можно на странице /wp-admin/options-general.php, галочка “Любой может зарегистрироваться”.

4. Запретить доступ к /wp-admin

Открыть доступ к админке можно только для одного IP. Метод подходит если ваш интернет-провайдер предоставил статический IP-адрес. Иначе, после переподключения к сети, у вас не будет доступа к админке.

Для этого нужно в конфиг Nginx добавить строки:

location ~ ^/wp-admin {
 allow 1.2.3.4;
 deny all;
}

Вместо “1.2.3.4” нужно указать ваш IP.

6. Использование сервиса “Сloudflare”

Вы можете использовать сервис cloudflare.com для блокировки Brute Force атак. Более подробно https://blog.cloudflare.com/patching-the-internet-fixing-the-wordpress-br/

Для Wordpress есть специальные плагины для защиты от Brute Force, но они работают с .htaccess. У нас не установлен Apache, поэтому плагины будут работать не корректно.


Интересные ссылки:

  1. https://perishablepress.com/5g-blacklist-2013/

  2. https://perishablepress.com/6g-beta/

  3. https://habrahabr.ru/company/xakep/blog/259843/

  4. https://habrahabr.ru/post/272381/