Базовая настройка защиты WordPress
Система управления контентом WordPress занимает первое место в мире среди других CMS по количеству сайтов в сети интернет созданных на ее основе. Поэтому, появляются большие риски что ваш сайт может быть подвергнут взлому с какой-либо целью, т.к. если взломщику удается найти уязвимость, то под угрозой становится огромное количество сайтов основанных на одной CMS.
К счастью, если вдруг находятся уязвимости в столько популярной CMS, то они быстро закрываются и вам стоит лишь обновить систему простым кликом мышки через админ панель.
Но для того что бы усложнить или «отпугнуть» взломщика от вашего сайта нужно побеспокоится о базовой настройке защиты wordpress.
1. Прописать свои префиксы к таблицам в БД
Если вы только устанавливаете wordpress, то на этапе настройки подключения к бд, префикс меняется в соответствующим поле:
Если у вас уже установлена CMS, тогда нужно провести изменения в нескольких местах.
Для начала необходимо изменить префиксы в базе данных. Удобно это делать через phpMyAdmin.
В phpMyAdmin отмечаем все таблицы для изменения и выбираем действие замены префикса.
После этого в поле «от» вводим название старого префикса, а в поле «до» нового.
Выполняем операцию и проверяем, что префиксы изменились.
Далее изменим записи со старым префиксом в двух таблицах. Для этого выполним поочередно запросы и изменим в соответствующих записях значения поля со старыми префиксами на новые.
Первый запрос:
|
SELECT * FROM новыйпрефикс_usermeta WHERE meta_key LIKE 'старыйпрефикс_%' |
примерный результат:
И так же для второго запроса:
|
SELECT * FROM новыйпрефикс_options WHERE option_name LIKE 'старыйпрефикс_%' |
После этого осталось только поправить переменную в файле wp-config.php .
2. Сложный пароль и нестандартный логин
Это значит, что вместо логина, по умолчанию, admin должен быть более сложный логин (например, adminisTrator123 уже будет сложнее). И соответственно — пароль, чем сложнее, тем лучше.
Можно в поисковике вбить «генератор паролей» и на любом найденном сайте сгенерировать его себе.
Все это надо для исключения входа на сайт методом перебора.
3. Запретить удаленное наполнение сайта
В wordpress есть возможность удаленной публикации статей через мобильные приложения и т.д. Чаще всего этим функционалом не пользуются. Но для взломщиков это один из способов получения управлением сайта. Если у вас нет потребности в данной возможности cms, то её можно отключить. Для этого пропишем пару строчек кода в файле functions.php используемой темы.
Код добавляется в начало файла.
|
add_filter('xmlrpc_enabled', '__return_false'); remove_action('wp_head', 'rsd_link'); remove_action('wp_head', 'wlwmanifest_link'); |
Для проверки того, что код подействовал в исходом коде сайта в блоке <head></head> не должно быть мета тегов:
|
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://ваш-сайт/xmlrpc.php?rsd" /> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://ваш-сайт/wp-includes/wlwmanifest.xml" /> |
По мимо всего этого запретим доступ к файлу xmlrpc.php, т.к. атакующий бот будет делать запросы на этот файл. Сделаем запрет через файл .htaccess и добавим в него код в начало либо в конец файла, заодно добавив запрет к файлу wp-config.php:
|
<Files xmlrpc.php> order allow,deny deny from all </Files> <Files wp-config.php> order allow,deny deny from all </Files> |
|
<Files xmlrpc.php> Require all denied </Files> <Files wp-config.php> Require all denied </Files> |
4. Скрыть meta name="generator"
В мета теге «generator» пишется версия cms wordpress, а так же может писаться версия решения интернет магазина woocomerce, по этому скроем этот тег.
Добавляем код в начало файла functions.php вашей темы:
|
remove_action('wp_head', 'wp_generator'); |
Проверяем, что в исходом коде сайта, в блоке <head></head>, нету мета тега:
|
<meta name="generator" content="WordPress 4.7" /> |
Не стоит лишний раз показывать какая версия движка стоит в данный момент.
5. Скрыть вход в админ панель
Для защиты входа в админ панель wp можно воспользоваться различными плагинами, либо более простым вариантом, что бы не перегружать систему дополнительными установками, можно прописать код со своими редиректами в файле .htaccess:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
#B: Hide admin URL <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !^(.*)admin\.php RewriteCond %{HTTP_REFERER} !^(.*)/wp-admin RewriteCond %{HTTP_REFERER} !^(.*)/wp-login\.php RewriteCond %{QUERY_STRING} !^СВОЙ_КЛЮЧ RewriteCond %{QUERY_STRING} !^action=logout RewriteCond %{QUERY_STRING} !^action=rp RewriteCond %{QUERY_STRING} !^action=postpass RewriteCond %{HTTP_COOKIE} !^wordpress_logged_in_.*$ RewriteRule ^.*wp-admin/?|^.*wp-login\.php /not_found [R,L] RewriteCond %{QUERY_STRING} ^loggedout=true RewriteRule ^$ /wp-login.php?СВОЙ_КЛЮЧ [R,L] </IfModule> #E: Hide admin URL |
Где написано «СВОЙ_КЛЮЧ» надо прописать свой ключ который нужно будет добавлять в ссылке входа в админку:
|
http://ваш-сайт/wp-login.php?СВОЙ_КЛЮЧ |
6. Защитить комментарии от спам-ботов
Самый быстрый и простой способ это защита с помощью плагина Akismet который устанавливается по умолчанию в стандартной сборке CMS.
Единственное это нужно его активировать и пройти путь настройки согласно инструкции. У него есть как платная так и бесплатная версия использования.
И самое главное, это не забывать обновлять систему, потому что с обновлением часто закрываются уязвимости в коде CMS.
Следуя всем этим правилам, ваша система будет более защищенная от возможных попыток взлома злоумышленниками.