WordPress - пожалуй, самая популярная и вместе с тем одна из самых часто взламываемых платформ. Почему-то существует мнение, что если ваш сайт особо никому не интересен, то и взламывать его не будут - зачем? На самом деле угроза взлома есть буквально у каждого сайта (и не только на WordPress), поэтому важно заботиться о защите своей странички. Что можно предпринять - а точнее, какие плагины установить - об этом я и расскажу в этой статье.

Эти советы будут полезны не только в работе с WordPress, но и с любой другой CMS. Они базовые, но, как показывает практика, все равно есть люди, которые о них не знают. Зачем это все делать? Чтобы усложнить жизнь злоумышленнику. Используя данные, которые устанавливаются по умолчанию, хакер может относительно легко взломать ваш сайт, а также вашу базу данных. Поэтому нужно сделать следующее.

1. Измените имя пользователя с admin на другое.

Чтобы это сделать, вам нужно сначала создать нового пользователя в качестве администратора. Сделать это можно вот тут:

После создания пользователя зайдите под его аккаунтом и в списке «Все пользователи» удалите аккаунт “admin”. При этом новый логин постарайтесь сделать каким-нибудь относительно сложным, ну хотя бы состоящим из нескольких слов: vasyapupkin99. Можете свой никнейм использовать, например.

Про пароль писать не буду - лучше воспользоваться тем, который сгенерирует вам Wordpress на стадии создания аккаунта, а не придумывать какой-то свой (который, скорее всего, будет легче).

2. Изменить префикс базы данных с wp на другой.

Существует два пути сделать это: либо самостоятельно правя таблицы в phpMyAdmin (или даже просто в файловом менеджере), либо через плагин. Кратко расскажу об обоих вариантах.

Изменение через phpMyAdmin

Сразу скажу, что это действие требует внимания к деталям и некоторого опыта работы в phpMyAdmin.

Первым делом создайте бэкап базы данных - он поможет вам восстановить информацию, если что-то пошло не так (или вы где-то что-то не то отредактировали).

Теперь зайдите в файловый менеджер и найдите файл wp-config.php, в нем строку $ table_prefix = "wp_";

“wp” надо изменить на что-то другое, менее связанное с WordPress и базами данных. Можно менять даже на произвольный набор букв и цифр (но вам его нужно запомнить или записать).

Внимание. Лучше всего производить это изменение на только что установленном WordPress. На уже запущенных сайтах информации больше - больше данных придется менять.

После этого зайдите в phpMyAdmin (на хостинге Timeweb это можно сделать прямо через панель управления) и найдите базу данных для нужного сайта. Все таблицы этой базы данных нужно переименовать, вместо “wp_” подставляя то, что вы уже написали выше.

Как переименовать: выбираете таблицу в левом столбце, нажимаете вкладку «Операции», далее смотрите блок «Параметры таблицы» и строку «Переименовать таблицу в». После внесения изменений не забудьте нажать «Вперед».

После этого ищите в списке таблицу “…_options”. Выбрав ее, нажмите «Обзор» - в содержимом примерно на второй странице в столбце “meta_key” вы увидите wp_user_roles - измените префикс “wp” на тот, который вы сейчас собираетесь использовать. Сохраните изменение.

Следующая таблица для изменения - “…_usermeta” - аналогичным образом посмотрите ее содержимое и измените все старые префиксы на новые.

Если после редактирования у вас что-то стало работать не так или вообще перестало работать, проверяйте, все ли изменения вы внесли. В крайнем случае используйте бэкап.

Изменение через плагин

Этот плагин не нуждается в представлении, поэтому сразу перейду к тому, что необходимо сделать.

После того, как вы установили и активировали плагин, зайдите в раздел «Защита Базы данных». Там вы увидите строку «Сгенерировать новый префикс таблиц БД» - напишите тот префикс, который хотите поставить (или поставьте галочку около «Отметьте, чтобы плагин сам сгенерировал префикс длиной в 6 случайных символов»), и нажмите «Изменить префикс таблиц». После этого ниже вы увидите отчет от ходе изменения префикса. Чтобы убедиться в том, что ожидаемый результат достигнут, зайдите в phpMyAdmin.

Еще раз напомню, что делать это нужно на новом сайте без статей, так как если на сайте уже есть много информации, плагин может сработать некорректно.

All In One WP Security & Firewall

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

В разделе «Настройки» плагина перейдите во вкладку “WP version info” и поставьте галочку рядом с «Удаление мета-данных WP Generator». Так как хакеры зачастую основываются на информации, которую содержат мета-данные, то будет нелишним убрать эту информацию из кода страницы.

Кстати, если вы все еще не поменяли имя администратора (следуя совету выше), то сделать это можно и через этот плагин - во вкладке «Администраторы». Просто напишите новое имя пользователя и еще раз авторизуйтесь в панели (пароль остается прежним).

Здесь же вы можете видеть вкладку «CAPTCHA при регистрации» - тоже активируйте этот пункт.

Теперь переходим в раздел «Файрволл» - здесь ставим галочку в блоках «Основные функции брандмауэра». Остальное можете включить/оставить выключенным по своему желанию.

Раздел «Защита от брутфорс-атак»: вам нужно включить опцию переименования страницы логина и написать желаемый адрес в графе ниже. Тут важно понять - этот адрес будет использоваться для входа в админку, жизненно важно его запомнить !

С этим плагином мы закончили, переходим к следующему.

AntiVirus

Этот плагин сканирует файлы сайта на предмет вредоносного кода. Пользоваться им достаточно просто - после установки зайдите в его настройки и нажмите “Scan the theme templates now”, после этого все файлы вашей темы будут проверены.

Тут же вы можете настроить и ежедневную проверку с отчетом на email.

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

Как и другие активные плагины, AntiVirus нагружает сервер (а значит, ваш сайт работает медленнее), поэтому лучше пользоваться им время от времени, чем постоянно держать в активном состоянии.

Wordfence Security

Этот плагин по функционалу схож с предыдущим, ими можно пользоваться параллельно, хуже не будет. Точно так же установите, активируйте, перейдите во вкладку “Scan” и нажмите на большую синюю кнопку “Start a Wordfence Scan”. Кое-какие возможности доступны только для оплаченных (премиум) аккаунтов, но базовый функционал тоже неплох. Если с вашим сайтом все хорошо, то вы увидите зеленую надпись “Congratulations! No security problems were detected by Wordfence”.

Расскажу еще о других плагинах, которые тоже можно использовать для защиты сайта.

Sucuri Security

Вообще Sucuri - это компания, которая специализируется на защите веб-сайтов, поэтому они предоставляют защиту для любого сайта (не только на WordPress). Плагин от этой серьезной компании с внушительной репутацией обладает широким функционалом, представляющим полный цикл защиты сайта, включая предупреждение взлома и атаки на ваш сайт. Можно пользоваться бесплатной версией, а можно купить платную за 16,66$ в месяц - сумма немаленькая, но за такой диапазон защитных инструментов вполне обоснованная.

Для того, чтобы пользоваться бесплатной версией, после установки вам будет необходимо сгенерировать бесплатный ключ (в синем блоке сверху нужно будет нажать кнопку “Generate API Key”, проверить, что введенные данные корректны, и отослать заявку.

iThemes Security

Если Sucuri Security можно назвать лучшим платным плагином защиты, то iThemes Security часто называют лучшим бесплатным плагином, который стоит установить для безопасности вашего сайта. Тем более что сейчас у него более 800 тысяч установок!

Про функционал много писать не буду - как и все другие плагины, iThemes Security направлен на защиту вашего сайта от большинства вещей, которые могут ему угрожать, и в то же время на проверку существующего состояния сайта. Кстати, раньше плагин назывался Better WP Security - возможно, кто-то помнит его по этому названию.

Если в целом говорить об его функциях, то можно выделить следующие стороны этого плагина:

  • скрытие и удаление потенциально уязвимых элементов (об этом было написано в начале статьи - смена логина администратора, префикса базы данных и так далее);
  • защита сайта от атак (сканирование на наличие уязвимостей, защита от брутфорса, шифрование админки и так далее);
  • мониторинг сайта (на наличие внезапных изменений, блокировок и так далее);
  • восстановление (резервное копирование на случай непредвиденной ситуации).

Теперь перейдем к самому использованию этого плагина.

Настройка iThemes Security

Начну с того, что у него есть и PRO (то есть более расширенная) платная версия, поэтому в бесплатной версии доступны не все возможности этого плагина (но их все равно много).

После установки активируйте плагин и переходите в раздел «Настройки». В синем блоке сверху вы сможете включить защиту от взлома методом полного перебора (Network Brute Force Protection) - для этого нужно запросить API ключ, который автоматически будет добавлен в настройки (но также отправлен вам на почту).

Нажмите “Security Check ” (самый верхний левый блок или в меню под «Настройки») и нажмите “Secure site”. После этого вы увидите список включенных модулей.

Следующий блок - «Основные настройки » (справа от “Security Check”). Так как плагин почти полностью переведен, каждый пункт имеет свою расшифровку - советую пробежаться по ним всем и посмотреть, что из этого наиболее актуально для вас (даже если не будете пользоваться, будете хотя бы знать, где что находится).

В режиме «Нет на мест е» вы можете установить время, когда административная панель будет недоступна. На постоянной основе этим можно не пользоваться, но вы можете использовать это для подстраховки, когда находитесь далеко от компьютера. При этом настроить можно как на постоянной основе (например, каждую ночь), так и один раз в определенный день и период времени.

Блок «Заблокированные пользователи » - тут все понятно, помещайте сюда всех, кого нужно заблокировать.

Local Brute Force Protection ” - это блок защищает от взлома путем перебора паролей. У вас он уже включен, настройки можно оставить по умолчанию.

«Резервные копии базы данных » - настройка резервного копирования, в бесплатной версии речь идет только про базы данных.

«Обнаружение изменений файлов » - крайне полезная функция, которая будет следить за всеми изменениями в файлах сайта; можно быстрее отследить внезапно появившуюся на сайте активность. Обязательно включите.

File Permissions ” - блок показывает права доступа к файлам.

Network Brute Force Protection ” - сетевая защита от брутфорса заключается в том, что если хакер пытался взломать чей-то другой сайт, доступ к вашему сайту у него будет также заблокирован, даже если он еще не начал атаку на ваш сайт.

SSL ” - вы можете настроить использование SSL в этом плагине, то если у вас сайт на хостинге Timeweb, я советую использовать настройки в панели управления сайтом.

Strong Password Enforcement ” - если ваш сайт предполагает регистрацию других пользователей (форум, блог…), тогда это настройка будет полезной, пользователям придется выбирать только сложные пароли для своих аккаунтов. В остальных случаях ее можно не использовать.

«Тонкая подстройка системы » и «Подстройка WordPress » - эти дополнительные настройки нужны для того, чтобы еще больше усилить защиту вашего сайта. Но есть один нюанс - включение некоторых настроек может повлиять на работу плагинов. Поэтому не стоит выбирать все сразу - включайте по одному пункту и проверяйте работоспособность вашего сайта.

Наконец, «WordPress Соли » - настройка позволяет добавить к паролю секретный ключ, подобрать который будет намного сложнее, чем пароль отдельно. Обычно это случайный набор символов, который добавляется при хэшировании. Периодически пользуйтесь этой настройкой («Изменить WordPress Соли») для того, чтобы сменить соль.

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

Заключение

Плагины - это существенный элемент безопасности вашего сайта, но хочу напомнить, что он не единственный. Не забывайте следить за обновлениями WordPress и плагинов, регулярно меняйте пароли и делайте бэкапы.

Сегодня на нулледе прочитал довольно не плохую статью про улучшения безопасности сайта на WordPress. По скольку на нулледе текст виден только зарегистрированным пользователям с определенным количеством постов, выложу статью у себя на блоге, для общественного пользования 😉 В общем всем также предлагаю ознакомиться и внести свои предложения и исправления (если конечно они будут).

1. Перед инсталляцией;
2. После инсталляции;
3. Периодические проверки и обновления.

1. Перед инсталляцией

1.1. Удаляем все ненужные файлы:
readme.html, license.txt, hello.php, ненужные темы и плагины.

1.2. Правильно отредактируем wp-config.php файл:

define("DB_NAME", "wpdb"); // Вместо "wpdb" нужно придумать сильное имя, например, wp433Fd6HW
define("DB_USER", "wpuser"); // Например, UserFB56SKl
define("DB_PASSWORD", "strongpassword"); // Тут должен быть сильный пароль, например, ‘FE876!8e#fh#9fDfds9f’
define("DB_HOST", "localhost"); // В 99% случаях это значение не нужно менять
define("DB_CHARSET", "utf8"); define("DB_COLLATE", "");

Меняем секретный ключ с дефолтного:

define("AUTH_KEY", "izmenite eto na unikalnuyu frazu");
define("SECURE_AUTH_KEY", "izmenite eto na unikalnuyu frazu");
define("LOGGED_IN_KEY", "izmenite eto na unikalnuyu frazu");
define("NONCE_KEY", "izmenite eto na unikalnuyu frazu");

на сгенерированный, с помощью сервиса

define("AUTH_KEY", "M.uFL(RBw5UkRw%P&+>E*jJZBikz3-OV7sO*-_g*{9z,PnM,T&LPAE");
define("NONCE_KEY", "d2A~8NBb%2?+6`z}?nWoD0`f]-.gUOC);

Делаем таблицы более защищенными:

$table_prefix = "wp_4i32aK_"; // Используйте только буквы, числа и символы подчерка, чтобы сделать свой table_prefix уникальным. По крайней мере, это защитит Вас от части public эксплоитов.

1.3. Создаём пользователя и базу данных для блога в консоле MySQL:
Сначала, заходим под root’ом и создаем базу данных для блога:

$ mysql -u root
mysql> CREATE database wpdb;

$ mysql -u root
mysql> CREATE database wp433Fd6HW;
Query OK, 1 row affected (0.00 sec)

Затем создаём пользователя: этот аккаунт будет иметь доступ только в базе данных WordPress. Также мы можем быть уверены, что пользователь используется только с локального сервера, а не удаленно.

mysql>
-> ON wpdb.*
-> TO "wpuser"@"localhost"
-> IDENTIFIED BY "strongpassword"; Query OK, 0 rows affected (0.01 sec)

В нашем примере это будет выглядеть так:

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON wp433Fd6HW.*
-> TO "UserFB56SKl"@"localhost"
-> IDENTIFIED BY "FE876!8e#fh#9fDfds9f";
Query OK, 0 rows affected (0.01 sec)

1.4. Уберите блок meta из кода Вашей темы
В стандартной теме кусок кода, отвечающего за вывод блока meta:

  • Meta





    • Valid XHTML

    • XFN

    • ">WordPress



  • 2. После инсталляции

    2.1. Меняем пароль Администратора по умолчанию
    Поменяйте сгенерированный на этапе установки пароль Администратора

    2.2. Удаляем версию WordPress

    remove_action ("wp_head", "wp_generator");

    В файле header.php в папке с Вашей темой удаляем строку:

    " />

    Для WordPress версии 2.8.4 находим имплементацию функции get_the_generator($type) и изменяем ее:

    function get_the_generator($type) {
    $gen = "";
    return apply_filters("get_the_generator_{$type}", $gen, $type);
    }

    2.3. Пустой index.php
    Поместите в папки wp-includes/, wp-content/, /plugins/ пустой файл index.php

    2.4. Меняем имя пользователя Admin на нечто более неочевидное
    Изменяем имя через MySQL консоль:

    wp $ mysql -u UserFB56SKl –p
    mysql> use wp;
    UPDATE wp_users SET user_login="adm" where user_login="admin";

    В нашем примере это будет выглядеть так:

    wp $ mysql -u wpuser –p
    mysql> use wp433Fd6HW;
    UPDATE wp_4i32aK_users SET user_login="adm234Df" where user_login="admin";
    Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0

    Или, если не хотите копаться с запросами, можно сделать следующее:

    1. Cоздайте новый аккаунт. Имя пользователя должно быть уникальным;
    2. Назначьте новому пользователю роль Администратора;
    3. Перелогинтесть как новый Администратор;
    4. Удалите учетку старого Администратора.

    2.5. Создаём новые роли пользователей
    Для этого необходимо сначала установить на Ваш блог плагин . Этот плагин даст Вам возможность скрупулезно и точечно устанавливать права пользователей. После активации плагина Вам, для начала нужно создать пользователя для себя. Удалите все права пользователя и затем внимательно выберите только те права, которые понадобятся Вам для ежедневной активности (писать посты, модерировать комментарии и тд). Удостоверьтесь, что только админский аккаунт имеет привилегии для активации / дезактивации плагинов, загрузки файлов, управлении опциями, переключении тем, импорт и тд.
    Если в Вашем блог будет многопользовательским, то необходимо подумать о том, какие права действительно нужны пользователям и создать на основе этого свои собственные роли.
    При создании ролей будьте осторожны, раздавая пользователям такие права как: аплоад файлов, доступ к редактированию исходного кода плагинов, активации плагинов, редактировании файлов / постов / страниц, импорт, нефильтрованный HTML, так как эти роли дают пользователям большие полномочия.

    2.6. Ограничиваем доступ к папкам wp-content и wp-includes
    С помощь файла.htaccess и специальных правил, мы запретим всё, кроме запросов на картинки, CSS и JavaScript. Файлы.htaccess необходимо положить с соответствующие директории.

    Order Allow, Deny
    Deny from all

    Allow from all

    Вы также можете добавить специфические PHP файлы для определенных шаблонов и плагинов.

    2.7. Прячем директорию wp-content
    Начиная с версии WordPress 2.6, появилась возможность переместить директорию wp-content.
    Меняем в wp-settings.php строчки:

    define("WP_CONTENT_DIR",$_SERVER["DOCUMENT_ROOT"]."/blog/wp-content");
    define("WP_CONTENT_URL","http://domain.ru/blog/wp-content");

    И, чтобы не было проблем с плагинами:

    define("WP_PLUGIN_DIR",$_SERVER["DOCUMENT_ROOT"]."/blog/wp-content/plugins");
    define("WP_PLUGIN_URL","http://domain.ru/blog/wp-conten/plugins");

    2.8. Ограничиваем доступ к папке wp-admin
    Если у Вас статический IP
    Этот шаг легко осуществим для однопользовательского блога, но может принести настоящую головную боль для многопользовательского варианта. Этот трюк подходит только, если у Вас статический IP. Файл.htaccess для директории wp-admin должен содержать следующие правила:

    AuthUserFile /dev/null
    AuthGroupFile /dev/null
    AuthName "Example Access Control"
    AuthType Basic

    order deny,allow
    deny from all
    allow from a.b.c.d. #Ваш статический IP

    Положите файл в директорию wp-admin и попробуйте зайти в эту папку через прокси. Если всё работает правильно, в доступе будет отказано. После этого попробуйте зайти со своего IP.

    Ограничиваем доступ по паролю
    Более предпочтительным может оказаться доступ к папке wp-admin по паролю. А это означает, что Вы можете заходить в админскую панель, откуда угодно. Также это вариант, если у Вас динамический IP.
    Файл.htaccess для директории wp-admin должен содержать следующие правила:

    #Файл.htpasswd находиться за пределами root директории Вашего блога

    ErrorDocument 401 default
    AuthUserFile /srv/www/user1/.htpasswd
    AuthType Basic
    AuthName "WordPress Dashboard"

    require user adminuser #Создайте секъюрный username


    require valid-user

    Сгенерируйте пароль командой:

    $ htpasswd -cm .htpasswd adminuser

    Или для генерации пароля воспользуйтесь сервисом . Вот пример для user: admin , password: test

    admin:$apr1$t3qLL...$uUmj9Wm/WbJk7YNza6ncM/

    Файл.htpasswd лучше расположить директорией выше корня блога.

    2.9. Файл wp-config.php
    Вариант первый: для защиты Ваших данных необходимо перебросить на папку выше, WordPress автоматически проверит директорию выше если не найдет у себя в корне wp-config.php.
    Если по каким-то причинам Вы не можете проделать того, что описано выше, то существует еще один вариант. А именно – защитить Ваш wp-config.php с помощью.htaccess:

    # protect wpconfig.php

    Order deny,allow
    deny from all

    2.10. Устанавливаем правильные права на файлы и папки
    Основное правило:

    1. Для файлов - 644
    2. Для папок - 755

    Из шелла эти операции можно проделать с помощью:

    cd
    find (your path) -type d -exec chmod 755 ‘{}’ \
    find (your path) -type f -exec chmod 644 ‘{}’ \

    2.11. SSL для админов
    Если Ваш сервер поддерживает SSL, то лучше сделать доступ в админку защищенной. Для этого в файле wp-config.php уберите комментарии в строчке:

    define(’FORCE_SSL_ADMIN’, true);

    2.12. Удалите вывод логов WordPress
    В файле functions.php в папке с Вашей темой добавляем строку:

    add_filter("login_errors",create_function("$a", "return null;"));

    2.13. Запрещаем индексации с помощью Robots.txt
    Проверить правильность можно по адресу

    2.14. Плагины для Вашей безопасности
    Login LockDown - Устанавливаем количество ложных логинов
    Для этого есть два решения в виде плагинов and . После того, как плагин активирован, он записывает все попытки залогиниться. Плагин позволяет запретить посетителю логиниться определенное время, после того как посетитель несколько раз неправильно ввёл пароль.

    Belavir – Следим за изменениями в ключевых php файлах

    WPIDS – Определяем признаки внедрения

    WordPress Online Security Scanner – Сканируем блог на уязвимости

    Akismit – Противоборство СПИДу СПАМу

    SpamBam – Определяем валидный ли браузер пользует клиент

    3. Периодические проверки и обновления

    3.1. Следите за обновлением WordPress
    3.2. Следите за обновлением плагинов
    3.3. Следите за обновлениями безопасности

    3.4. Проверяйте код темы и плагинов, которые Вы хотите добавить, на «дырявость»
    3.5. Боритесь со спамом
    3.6. Регулярно делайте полный backup базы данных Вашего блога
    3.7. Читайте девелоперские блоги
    Небольшой список:

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

    Вот несколько предложений, как повысить информационную безопасность для сайта на WordPress.

    Разработчики платформы предлагают собственный список мер по обеспечению защиты сайтов на WordPress, с которым рекомендуем обязательно ознакомиться. Конечно, некоторые из этих рекомендаций будут повторяться ниже, но лишние практические советы и инструкции не помешают, когда речь идет о безопасности данных.

    Создайте отдельный аккаунт с правами редактора

    Когда вы пишете или редактируете сообщения в блоге, «имя автора» показывается в нижнем левом углу браузера, если навести курсор на имя автора в публикации. Если ваше имя автора совпадает с именем администратора, вы сделали за хакеров половину работы по успешному взлому своего сайта.

    Исправить ситуацию просто: создайте нового пользователя, у которого есть только права редактора, и авторизуйтесь под этим именем, когда собираетесь что-то публиковать или редактировать в блоге. Это имя будет отображаться во всех ваших публикациях; а хакеры потратят кучу времени, пытаясь взломать ваш блог под именем пользователя с якобы правами администратора, которое на самом деле позволяет лишь писать и редактировать сообщения.

    Кроме того, специальные плагины безопасности для WordPress ограничивают попытки зайти на сайт под конкретным логином и сообщают о попытках несанкционированного проникновения на заданную электронную почту. Так вы узнаете, предпринимались ли попытки взлома с использованием настоящего логина администратора, и сможете уделить внимание безопасности сайта на вордпресс до того, как злоумышленники подберут пароль.

    Не используйте простые пароли

    Запомните простое слово СУД – Сложный, Уникальный, Длинный. Здесь вступают в игру инструменты вроде 1Password или LastPass, которые генерируют пароли установленной вами длины. В зависимости от того, какой уровень защиты вы хотите получить, выбирается длина пароля в знаках (обычно хватит 20 знаков) и включаются такие редко используемые символы, как # или *.

    «123456» — это не пароль. «qwerty» равносильно тому, что вы напишете на банковской карте её пин-код. Даже «starwars» вошел в список 25 самых распространенных паролей 2015 года. Помните, вы не настолько уникальны, как думаете.

    Добавьте двухфакторную аутентификацию

    Даже если вы не используете имя пользователя admin и установили сильный, произвольно сгенерированный пароль, атаки методом «грубой силы» остаются проблемой. Для снижения риска такого проникновения методы вроде двухфакторной аутентификации являются ключевыми.

    Да, двухфакторная аутентификация доставляет много хлопот. Но теперь это ваш Форт-Нокс. Суть ее для защиты сайта на WordPress заключается, как ясно из названия, в двух формах авторизации. Сегодня это стандарт, повышающий безопасность ваших точек доступа. Вы уже используете двухфакторную авторизацию для Gmail и Paypal (по крайней мере, должны это делать). Так почему бы не добавить в список WordPress?

    Для реализации инструмента есть специальный плагин Google Authenticator. Альтернативный вариант с несколько другим подходом и тем же результатом — Rublon Plugin.

    Используйте принцип минимальных привилегий
    Команда WordPress.org составила отличную статью в кодексе WordPress, регулирующую Роли и Права пользователей. Обязательно ознакомьтесь с этим документом, который непосредственно касается данного шага.

    Принцип минимальных привилегий очень простой – давайте доступ только:

    — тем, кому он нужен;

    — тогда, когда он нужен;

    — на тот период времени, который нужен.

    Если кому-то нужны права администратора, чтобы изменить конфигурацию, предоставьте их, но закройте доступ сразу же после выполнения задачи.

    Хорошая новость – эти действия не займут у вас много времени.

    Вопреки широко распространенному мнению, не каждый пользователь, получающий доступ к вашему сайту на WordPress, должен получать права администратора. Давайте людям права доступа, достаточные для выполнения их задач, и вы намного снизите угрозу безопасности своего wordpress-сайта.

    Для настройки подобного рода безопасности wordpress есть плагин: Google Authenticator . Альтернативой, которая использует несколько иной подход для этой же цели, является плагин

    Скройте файлы wp-config.php и.htaccess

    Это относительно просто сделать, но ошибки при выполнении процедуры могут превратить ваш сайт в недоступный. Создайте резервную копию, и только после этого приступайте к изменениям.

    Перейдите в меню «Инструменты => Редактор файлов» для редактирования файла.htaccess. Для повышения уровня безопасности и защиты файла wp-cnofig.php вам нужно добавить такой код в файл.htaccess:

    Он закроет доступ посторонних к файлу wp-config.php. Похожий код можно использовать для защиты самого файла.htaccess: order allow,deny deny from all

    Вы сможете внести эти изменения самостоятельно, здесь нет ничего сложного.

    Используйте для аутентификации ключи безопасности WordPress

    Ключи аутентификации и salt-ключи работают в связке друг с другом, чтобы защитить ваши cookies-файлы и пароли во время передачи данных между браузером и веб-сервером. Эти ключи аутентификации построены на наборе случайных переменных. Они повышают защиту (шифрование) информации в файлах cookies.

    Чтобы изменить их в файле wp-config.php, просто получите новый набор ключей здесь — https://api.wordpress.org/secret-key/1.1/salt/ — и добавьте в файл. При обновлении указанной страницы ключи изменяются, так что каждый раз вы будете получать новый набор.

    Отключите редактирование файлов

    Самым простым способом изменить ваши файлы является доступ к пункту меню WordPress «Оформление => Редактор». Чтобы повысить уровень защиты, вам нужно отключить возможность редактирования файлов через консоль. Откройте файл wp-config.php и добавьте строчку

    Define("DISALLOW_FILE_EDIT", true);

    У вас останется возможность вносить изменения в шаблоны через FTP-доступ, но теперь никто не сможет изменять их с помощью инструментов в консоли WordPress.

    Ограничьте число попыток авторизации

    Целью атак методом подбора ключей является форма для авторизации на сайте. Плагин All in One WP Security & Firewall позволяет изменить путь по умолчанию (/wp-admin/) к этой форме ввода. Помимо этого, с помощью специальных плагинов вы можете ограничить число попыток ввода с конкретного IP-адреса.

    Выборочное использование интерфейса XML-RPC

    XML-RPC – это прикладной программный интерфейс (API), который используется повсеместно. К нему обращается огромное число плагинов и тем, поэтому менее подготовленным технически пользователям нужно особенно осторожно экспериментировать с этим инструментом.

    Несмотря на практичность шага, отключение XML-RPC может обойтись дорого. Вот почему не рекомендуется отключать его полностью, но внимательнее следить за тем, какие программы и как пытаются получить доступ к этому интерфейсу. Существует множество плагинов, которые помогают осуществлять выборочную реализацию и отключение XML-RPC.

    Хостинг и безопасность WordPress

    Владельцы сайтов часто жалуются, что их хостинговые компании не помогают защитить ресурс от взлома или вообще ничего не понимают в обеспечении безопасности сайтов на платформе WordPress.

    Хостинговые компании просто видят ваш сайт иначе. Нет однозначных правил по выбору хостинга для wordpress, но он действительно важен, когда речь идет о мерах по улучшению защиты от несанкционированного доступа.

    Буквально каждая статья о выборе хостинга начинается со слов о том, что дешевый не значит лучший. Самые дешевые тарифные планы не помогут вам уберечься от атаки хакеров. Такие пакеты включают минимальную защиту ресурса, например, предустановленный брандмауэр веб-сайта.

    Виртуальный хостинг подразумевает, что сервер, на котором расположен ваш ресурс, является домом и для других сайтов. У них могут быть собственные проблемы безопасности, которые затрагивают и безопасность вашего сайта.

    При этом безопасность WordPress , наверно, одно из главных преимуществ, которые предлагают хостинговые компании в специализированных WordPress-тарифах.

    Обычно сюда входит резервное копирование, резервный брандмауэр, проверка файлов на наличие вредоносного ПО, защита от и автоматическое обновление WordPress. Причем все это предлагается, как правило, за вполне приемлемую стоимость.

    Не забывайте о хостинг-аккаунте

    Одна из самых больших проблем хостингов связана с конфигурацией аккаунта для владельца сайтов. Пользователь может инсталлировать и конфигурировать столько сайтов, сколько захочет, что способствует появлению в системной среде «бесплатной столовой» для вредоносного ПО.

    Проблема актуальна, потому что во многих случаях веб-ресурс может быть взломан методом, известным как межсайтовое заражение, когда вектором атаки является соседний сайт. Злоумышленник преодолевает защиту севера, а затем начинает проникать на соседствующие сайты, расположенные на этом сервере.

    Лучший способ защиты от этого вида взлома — создание двух аккаунтов. Один из них вы используете как рабочую среду и размещаете на нем только активные сайты, а второй – как промежуточный, на котором вы храните все остальное.

    Будьте в курсе последних обновлений

    О том, что нужно поддерживать актуальность, легко говорить. Но для владельцев сайтов это означает ежедневный кропотливый труд. Наши сайты – сложные создания. В каждый момент времени на них происходят десятки событий, поэтому иногда внести мгновенные изменения бывает трудно.

    Недавние исследования показал, что 56% установленных систем WordPress используют устаревшие версии платформы.

    Обновления должны касаться не только ядра платформы. В упомянутом исследовании говорится также, что большое число хакерских атак использует устаревшие, уязвимые версии плагинов.

    Как выбирать безопасные плагины и темы для WordPress

    Большинство пользователей предпочитают беспорядочную установку плагинов и тем на своих сайтах. Это глупо, если только вы не делаете установку на тестовом сервере с единственной целью — проверить работу той или иной темы либо плагина.

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

    Как выбрать правильный плагин для wordpress

    Как уже сказано выше, бесплатные темы и плагины являются потенциальной угрозой для безопасности сайта. Добавляя эти элементы на сайт, обязательно проверяйте их рейтинг, например, на WordPress.org.

    Но просто пять звезд ничего не скажут о степени надежности плагина, в зависимости от ниши он должен иметь определенное количество отзывов. Если достаточно много людей считает, что это замечательный продукт, и нашли время для оценки, можно попробовать его в действии на собственном сайте.

    Еще один момент, который вы должны проверять – актуальность плагина или темы. Если не было обновлений в течение последних двух лет, WordPress об этом сообщит. Отсутствие обновлений не обязательно означает, что плагин плохой.

    Возможно, у автора просто не было необходимости в том, чтобы вносить исправления в рабочую программу. Все же не рекомендуется устанавливать плагины, которые давно не обновлялись. Рейтинг расскажет о работоспособности выбранного элемента и о его совместимости с текущей версией WordPress. Всю эту информацию можно увидеть на странице плагина на WordPress.org.

    Заключение

    Если вы дочитали эту статью до конца, то просто обязаны принять дополнительные меры по защите своего сайта на WordPress. Добавьте в список ежедневных действий проверку защищенности своего ресурса. Она должно стать такой же ежедневной рутиной любого владельца сайтов, как регулярное добавление новых публикаций и страниц.

    Не нужно забывать о регулярном создании резервных копий, для чего у платформы есть множество надежных плагинов. Правда, не являются частью политики информационной безопасности, это скорее административные и служебные задачи.

    Мы привели далеко не полный список того, что можно сделать для защиты сайта от взлома. Но надеемся, что наши практические советы помогут обеспечить хотя бы первый уровень информационной безопасности для вашего ресурса.

    Помните, безопасность WordPress не бывает абсолютной.

    Так что сделать жизнь хакеров тяжелой – наша задача, как владельцев сайтов.

    • Перевод

    Административная зона любого веб-приложения давно стала излюбленной мишенью для хакеров и её безопасность чрезвычайно заботит разработчиков. Это касается и WordPress - при сустановке нового блога система создает аккаунт администратора с уникальным случайно сгенерированным в реальном времени паролем, чем блокирует всеобщий доступ к настройкам системы, контролируя его c помощью страницы авторизации.

    Эта статья сфокусирована на вопросах усиления безопасности WordPress - как административной панели, так и настроек блога, подразумевая все содержимое папки «wp-admin» , которое отображается только после авторизации . Мы сознательно выделили фразу "после авторизации " - вы должны четко осознавать, что только один простой запрос отделяет «злого хакера» и админку всего вашего блога или сайта! А последняя защищена настолько сильно, насколько мощный пароль вы выбрали.

    Чтобы в разы усложнить задачу взломщиков, мы предлагаем набор операций, которые вы можете выполнить вручную. Эти решения не гарантируют 100% защиту, но с их помощью вы заметно улучшите безопасность вашего блога.

    1. Переименуйте папку wordpress.

    Начиная с версии 2.6, стало возможным изменять путь к папке wp-content . К сожалению это до сих пор неприменимо к папке wp-admin . Думающие о безопасности блоггеры смирились с этим и стали надеяться, что это станет возможным в будущих версиях. Пока этого не случилось, предлагаем воспользоваться следующим альтернативным решением проблемы. После распаковки архива с файлами WordPress, вы увидите папку «WordPress» - переименуйте папку (в идеале во что-то непонятное вроде " wordpress_live_Ts6K" ) и после этого настройте соответственным образом файл wp-config.php , который находится в корневой директории.
    Что нам даст это изменение?
    • Во-первых, все файлы WordPress не будут смешаны с другими файлами в корне сайта, таким образом мы повысим ясность корневого уровня.
    • Во-вторых, множество копий WordPress может быть установлено параллельно в папки с разными именами, исключая их взаимодействие, что делает это идеальным для тестирования
    • Третье преимущество напрямую касается безопасности: административная зона (и весь блог в целом) больше не находится в корневой папке и для проведения каких-либо действий по взлому сначала ее нужно будет найти. Это проблемно для людей, но что касается ботов - вопрос времени.

    Несколько установленных версий в root-каталоге - это возможно!

    Примечание: Если системные файлы WordPress больше не в корневой директории, и имя папки инсталяции изменено в соответствии с рекомендациями, описанными выше, блог будет все равно доступен по адресу wp-config.ru . Почему? Зайдите в раздел «Общие настройки (General settings)» вашего блога и введите в поле «WordPress address (URL)» реальный адрес блога на сервере, как показано в примере:

    Адрес блога должен быть красивым и ненавязчивым

    Это позволит блогу отображаться по красивому виртуальному адресу.

    2. Усовершенствуйте файл wp-config.php

    Конфигурационный файл WordPress wp-config.php содержит в себе некоторые настройки сайта и информацию для доступа к базе данных. Также там другие настройки, касающиеся безопасности (они представлены в списке ниже). Если таких значений в этом файле нет, или же имеются только установленные по умолчанию, вам необходимо, соответственно, добавить или изменить их:
    • Ключи безопасности: начиная с версии 2.7, в WordPress есть четыре ключа безопасности, которые должны быть правильно установлены. WordPress спасает вас от необходимости выдумывать эти строки самому, автоматически генерируя правильные ключи с точки зрения безопасности. Вам просто нужно вставить ключи в соответствующие строки файла wp-config.php. Эти ключи являются обязательными для обеспечения безопасности вашего блога.
    • Префикс таблицы заново установленного WordPress блога не должен быть стандартным «wp_» Чем больее сложным будет значение префикса, тем менее вероятна возможность несанкционированного доступа к таблицам вашей MySQL базы данных. Плохо: $table_prefix = "wp_"; . Намного лучше: $table_prefix = "wp4FZ52Y_"; Не стоит бояться забыть это значение - вам необходимо ввести его только один раз, больше оно вам не понадобится.
    • Если у вас на сервере доступно SSL шифрование , рекомендуется включить его для защиты административной зоны. Это можно сделать, добавив следующую команду в файл wp-config.php: define("FORCE_SSL_ADMIN", true);
    Также вы можете регулировать другие системные настройки в конфигурационном файле. Четкий и исчерпывающий список доступных настроек доступен на странице Кодекса

    Не пренебрегайте установкой правильных ключей безопасности!

    3. Переместите файл wp-config.php

    Также начиная с версии 2.6, WordPress позволяет перемещать файл wp-config.php на высший уровень. По причине того, что этот файл содержит в себе намного более важную информацию, чем какой либо другой, и потому что всегда намного сложнее получить доступ к корневой папке сервера, имеет смысл хранить его не в той же директории, где и остальные файлы. WortdPress автоматически обратится к высшей папке в поиске файла wp-config.php . Любые попытки пользователей самим настроить путь бесполезны.

    4. Защитите файл wp-config.php

    Не все ISP серверы позволят вам передавать данные на более высокие уровни, чем корневая директория. Другими словами, не у всех хватит прав для осуществления предыдущего шага. Или по другим причинам: например, если у вас несколько блогов, при определенной структуре папок у вас не получится положить в корень все файлы, так как их имена будут совпадать для каждого из блогов. В этом случае мы можем запретить доступ к файлу wp-config.php извне при помощи файла .htaccess . Вот код для этого:

    # protect wpconfig.php
    Order deny,allow deny from all

    Очень важно убедиться, что файл .htaccess находится в той же директории что и файл wp-config.php .

    5. Удалите учетную запись администратора.

    Во время процесса установки WordPress создает учетную запись администратора с ником «admin» по умолчанию. С одной стороны это вполне логично, с другой - пользователь с известным ником, т.е. ID - 1, обладающий административными правами, является вполне предсказуемой мишенью для хакеров с их программами подбора паролей. Отсюда следует наш совет:
    • Создайте еще одного пользователя с административными правами и вашим ником.
    • Завершите сеанс работы.
    • Залогиньтесь под новым аккаунтом.
    • Удалите учетную запись "admin ".
    Если у вас не новый блог и под учетной записью admin вы уже публиковали посты или комментарии, то из предложенных вариантов в момент удаления, выберите пункт «Связать все записи и ссылки с:» и выберите имя нового пользователя:

    Примечание: В идеале желательно чтобы логин нового пользователя отличался от отображаемого имени пользователя в постах, чтобы никто не узнал ваш логин.

    6. Выберите сильный пароль.

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

    Чаще всего именно пароли являются самым слабым звеном в этой цепи. Почему? Способы выбора пароля у большинства пользователей зачастую необдуманны и беспечны. Многие проведенные исследования показали, что большинство паролей - односложные существующие слова, набранные строчными буквами, которые не сложно подобрать. В программах подбора паролей существуют даже списки самых часто используемых паролей.

    В WordPress реализован интуитивно понятный индикатор стойкости набираемого пароля, который показывает цветом его уровень сложности:

    7. Защитите папку «wp-admin».

    Следуя пословице «две головы лучше одной», существует способ вдвое усилить защиту административной зоны. Защита регулируется файлом .htaccess , который должен находится в папке «wp-admin» вместе с файлом .htpasswd , который хранит логин и пароль пользователя. После обращения к папке, вам нужно будет ввести логин и пароль, но разница в том, что в этом случае авторизация контролируется на стороне сервера, а не силами самого WordPress.

    Для того чтобы просто и быстро сгенерировать файлы .htaccess и .htpasswd , воспользуйтесь этим сервисом .

    8. Запретите отображение ошибок на странице авторизации.

    Страница авторизации WordPress - это дверь в административную зону вашего блога, которая становится доступна после безошибочного прохождения верификации. У каждого пользователя существует бесконечное количество попыток авторизации, и каждый раз по умолчанию услужливый WordPress указывает, в чем именно была ошибка. То есть, если введенный логин окажется неверным - WordPress так и скажет. Это удобно для пользователя, но также и для хакера.

    Несложно догадаться, как быстро сокращается вероятность подбора комбинации логина/пароля, когда система указывает что именно введено неверно. Простая строка кода, поможет решить эту проблему, достаточно добавить её в файл functions.php вашей темы:

    Add_filter("login_errors",create_function("$a", «return null;»));

    Изначальный/измененный вид страницы авторизации.

    9. Ограничьте количество неудачных попыток авторизации.

    WordPress не ведет статистику авторизаций, как удачных, так и нет. Это очень неудобно для администратора, так как у него нет возможности увидеть были ли попытки несанкционированного доступа, чтобы принять какие-либо меры, если они участятся. Предлагаем два решения: плагины

    Привет, ребята! Когда твой сайт становится немного раскрученным, появляются постоянные читатели, получаешь огромное удовольствие. Вроде бы все круто. Растет и поток денег, и отклик получаешь от аудитории, увеличивается узнаваемость. Но существует и обратная сторона медали. Это завистники, это внимание со стороны недоброжелателей.

    Чтобы вы представляли, о чем идет речь: мой блог только за прошлую неделю взламывали 2 раза. Постоянные посетители, думали, заметили. Ребята, я настоятельно рекомендую ознакомиться с данным уроком, потратить время на внедрение советов, о которых говорю, чтобы больше обезопасить свой сайт и сэкономить время, деньги и нервы.

    All In One WP Security - это самый необходимый плагин для увеличения безопасности в WordPress. Ставить его нужно всем, кто владеет сайтом на Вордпресс. Всем без исключения.

    Если мой любимый - это комбайн в сфере SEO для WordPress, то плагин WP Security - аналог в сфере безопасности. То есть, если благодаря Yoast SEO я перестал нуждаться в нескольких SEO плагинах, то здесь точно также, благодаря All In One WP Security можно избавиться от других плагинов, которые лишь частично выполняют функции данного. Например, как:

    • Login Lockdown;
    • WordPress Database Backup;
    • Anti-XSS attack;
    • и другие подобные.

    Огромные плюсы плагина All In One WP Security:

    • бесплатный;
    • настраивается очень просто;
    • практически все переведено на русский язык, поэтому понятно о чем идет речь.

    Настройка плагина All In One WP Security

    Обязательно сделайте бэкап (резервную копию) перед началом работы (на всякий случай) следующих файлов:

    • база данных;
    • файл wp-config;
    • файл htaccess.

    Кстати, резервные копии этих трех файлов можно сделать прямо в данном же плагине, просто в админке перейдите в WP Security - Настройки:

    Панель управления

    Тут есть очень крутой информер, который показывает уровень защищенности вашего сайта:

    Этот показатель поможет держать руку на пульсе и понимать, что еще нужно сделать для улучшения безопасности. Не рекомендую делать все, ради достижения максимальных баллов. Могут быть плохие последствия, ваш сайт может упасть, ошибочно функционировать.

    Текущий статус самых важных функций. В этом блоке можно активировать самый необходимый функционал по безопасности вашего сайта (можете пока не трогать их, в ходе настроек по уроку, данные параметры активизируются итак):

    Остальные параметры в Панели управления малоинтересны, Вы можете ради любопытства ознакомиться с ними (Информация о системе, Заблокированные IP адреса, AIOWPS.

    Настройки

    Общие настройки. Тут можно создать резервные копии файлов, о которых я говорил выше. Также отключить функции безопасности и файерволла, если что-то перестало работать.

    WP мета-информация. Нажимаем на галочку напротив "Удаление метаданных WP Generator", чтобы не отображать версию WordPress:

    Вкладка "Импорт/Экспорт". Здесь можно экспортировать свои настройки, чтобы потом на другом сайте не тратить время на настройки и импортировать в 2 клика все необходимые "галочки".

    Администраторы

    Пользовательское имя WP. Обязательно (!) смените имя администратора, если оно у вас "admin". Вы не представляете как много и часто подбираются пароли с логином admin. Если еще к тому же пароль очень легкий, ваш сайт легко может быть взломан.

    Отображаемое имя. Если на вашем сайте есть аккаунты, у которых имя пользователя и отображаемое имя совпадает, то рекомендуется изменить отображаемое имя (никнейм).

    Пароль. Очень интересная вкладка. Тут можно узнать, за какой промежуток времени можно подобрать в автоматическом режиме ваш пароль. Введите свой пароль и сильно удивитесь, насколько быстро его можно взломать. Обязательные условия для усиления безопасности:

    • в вашем пароле должны быть как заглавные, так и строчные буквы;
    • обязательно наличие хотя бы 1-ой цифры, но никак пароль не должен состоять только из цифр;
    • желательно еще наличие какого-либо спецсимвола;
    • длина пароля должна быть более 10 символов.

    В итоге у вас должен быть максимальный степень безопасности вашего пароля, что-то в этом роде (пароль ниже домашний компьютер взломал бы за 57 337 лет (!)):

    Авторизация

    Обязательно включите эту функцию. Если пароль в течении 5-ти минут (по умолчанию) введется 3 раза неправильно, то IP блокируется на 60 минут (тоже по умолчанию). Я не рекомендую ставить блокировку больше по времени, а то можно столкнуться с тем, что сами администраторы вводят логин 3 раза неправильно, ставят блокировку на 10 лет и не знают что делать. Оставляем по умолчанию 60 минут и не паримся.

    Также я рекомендую поставить галочку напротив "Сразу заблокировать неверные пользовательские имена". К примеру, вы поменяли логин с admin на krutysh, то при вводе логина admin в поле для авторизации, сразу же заблокируется IP адрес. "Уведомлять по email" - тут по мере необходимости. Я не люблю лишний спам, поэтому здесь галочку не ставлю.

    Итоговые настройки данной вкладки у меня выглядят так:

    Если вам любопытно, можете глянуть список заблокированных IP, ссылка на раздел приводится в данной же вкладке ниже.

    Ошибочные попытки авторизации. Вот здесь как раз видны те логины, которые подбираются. Чаще всего у меня сверкают логины admin, root, font. Также видны время "попыток". Обратите внимание, как часто пытаются войти в админку:

    Автоматическое разлогинивание пользователей. Рекомендую тоже включить данный чекбокс. Позволяет через определенное количество минут завершить сессию и разлогинить пользователя. Я ставлю 600 минут:

    Вкладки "Журнал активности аккаунта" и "Активных сессий" носят информационный характер.

    Регистрация пользователей

    Ставим галочку напротив "Активировать ручное одобрение новых регистраций":

    Да и можно поставить галочку CAPTCHA при регистрации:

    Конечно, если нельзя зарегистрироваться другим людям на вашем сайте, верхние 2 пункта просто бесполезны, от них не станет ни лучше, ни хуже. Но, если вы сомневаетесь, лучше поставьте галочки в этих пунктах.

    Защита базы данных

    Здесь будьте аккуратны во вкладке "Префикс таблиц БД". Прежде чем поставить галочку, обязательно сделайте резервную копию своей базы данных (там же увидите ссылку на создание бэкапа своей БД). Если боитесь, сомневаетесь, лучше оставьте без галочки:

    Резервное копирование БД. Здесь уже ставим галочку, выбираем частоту создания бэкапов и их количество. У меня. к примеру, такие цифры:

    Защита файловой системы

    Доступ к файлам. Здесь в правой части у вас будут кнопки, вам нужно будет изменить права доступа к файлам, нажав на эти кнопки. В результате все строчки у вас должны стать зелеными:

    Редактирование файлов PHP. Если вы не правите свои PHP файлы через админку, ставим галочку. Править файлы через админку я не рекомендую хотя бы потому, что у вас нет возможности нажать CTRL+Z в случае чего и вы не сможете вернуть файл в исходное положение:

    Доступ к файлам WP. Ставим галочку:

    Системные журналы. Оставляем по умолчанию.

    WHOIS-поиск

    Можете вбить IP адрес, либо домен для получения WHOIS какого-либо домена. А так по сути тут нечего трогать.

    Черный список

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

    Файрволл

    Базовые правила файрволла. Если вы не делали до этого момента резервную копию htaccess, то обязательно делаем его. И ставим галочки напротив всех пунктов:

    Дополнительные правила файерволла. Тут тоже включаем все галочки:

    UPDATE: ниже во вкладке "Дополнительная фильтрация символов" я убрал галочку, потому что некоторые комментарии не проходили, отдавали 403 ошибку. Наверное, все-таки, вам тоже я посоветовал бы убрать эту галочку , чтобы не было у пользователей проблем с комментированием.

    Настройки 5G файрволл. Тоже включаем:

    Интернет-боты. Здесь могут возникнуть проблемы с индексацией, поэтому я рекомендую не включать данный пункт.

    Предотвратить хотлинки. Тоже включаем.

    Custom Rules. Можно задать дополнительные правила в файл htaccess. Ничего не трогаем.

    Защита от брутфорс-атак

    Переименовать страницу логина. Включаем. Меняем адрес логина на свой:

    Защита от брутфорс-атак с помощью куки. Я не включаю данную функцию, чтобы не было проблем со входом с разных устройств.

    CAPTCHA на логин. Можете включить CAPTCHA при авторизации, я же не включаю:

    Белый список для логина. Так как я часто захожу на сайт с разных мест, IP у меня разный, поэтому данную опцию я не включаю:

    Бочка с медом. Создается дополнительное поле, которое видят только роботы. Поэтому, при заполнении данного поля, робот будет перенаправлен на свой адрес. Включаем:

    Защита от SPAM

    CAPTCHA в форме комментариев. Я не включаю, так как не люблю усложнять комментирование, а вот функцию "Блокировка спам-ботом от комментирования" рекомендую включить:

    Отслеживание IP-адресов по спаму в комментариях. Тут можно глянуть на "частосверкающие" IP по спаму в комментах и занести их в черный список.

    BuddyPress. Добавляет CAPTCHA в форме регистрации BuddyPress. Я не использую ее.

    Отслеживание изменений в файлах. Рекомендую включить, так как часто при взломе сайтов не совсем понятно, какой файл изменили, где искать вредоносный код. А с помощью этой функции сможете отследить изменения в файлах вашего сайта и быстро найти тот файл, который изменялся в последнее время.

    Сканирование от вредоносных программ. Функция платная, стоит от 7$ в месяц.

    Режим обслуживания

    Позволяет "закрыть" сайт на время, чтобы сделать какие-то правки. То есть посетителям сайта будет предложена "заглушка", что ведутся работы на сайте. Полезно при смене дизайна, проверке работоспособности плагинов.

    Разное

    Защита от копирования текста и прочее. Здесь я нигде в трех вкладках не ставлю галочки. Тоже рекомендую не ставить.

    Итоги

    После завершения всех этих настроек, вы можете перейти в "Панель управления" и глянуть показатель уровня безопасности, у вас должно получится что-то вроде этого:

    Повторюсь, не нужно необдуманно делать все, чтобы достигнуть максимально возможного балла. Не занимайтесь ненужным вредом для своего сайта, его работоспособности и удобства.

    Если возникнут вопросы - пишите. Спасибо отдельное за ретвиты и репосты, за то, что помогаете людям донести эту важную информацию.