Безопасность wordpress

Базовые правила, обеспечивающие безопасность wordpress

Не включайте лишний код

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

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

Хорошими вопросами могут быть:

  • Как я могу отказаться от этого нового плагина? Возможно, вы увидите альтернативные варианты, или вовсе отсутствие необходимости его использовать.
  • Для чего мне на самом деле необходим этот плагин? Какие преимущества я получу из его использования?

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

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

Придерживайтесь простого, но эффективного принципа:
Меньше кода, меньше проблем.

Не давайте другим участникам права, превышающие их обязанности

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

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

Обновляйте сайт и плагины

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

Если у вас установлены не 30-50 плагинов, то процесс обновления не занимает много времени, и обычно случается 2-3 раза в месяц. Справедливая цена, чтобы спать спокойно.

Устанавливайте сильные пароли

Сильные пароли помогают избежать brute-force атаки, то есть угадывания вашего пароля. Если ваш пароль содержит всего 3-4 символа, и при этом вы используете логин ’admin’, то ваш сайт можно взломать менее чем за 1 минуту! Подумайте об этом.

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

Конечно, такой пароль не просто придумать, тем более его запомнить и использовать. Здесь вам на помощь придут автоматизированные приложения: 1password, keepass, lastpass. Выберите одно, и предоставьте им заботиться о хранении ваших паролей.

Обеспечьте безопасность wordpress доверенными источниками установки новых плагинов и тем

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

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

Потому что код этого плагина никак не проверялся на работоспособность и уязвимость, как это делается командой разработчиков и сообществом на сайте https://wordpress.org/plugins/, и скорее всего, он может содержать рискованный код даже без всякого умысла со стороны его автора.

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

Включайте антивирус на компьютере

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

Не вводите пароли в публичных зонах Wi-Fi

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

Используйте зашифрованный способ передачи. Создайте и настройте SSL сертификаты для вашего сайта, вы будете спокойны, зная что защитили ваш сайт и данные ваших пользователей.

Делайте регулярный бэкап сайта

Это еще одно золотое правило. Разумеется, он будет создаваться автоматически. Если у вас есть shell, вы можете написать собственный скрипт бэкапа базы данных и файлов сайта.

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

WordPress › Search for backup « WordPress Plugins

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

к содержанию ↑

Продвинутые способы защиты WordPress

Правильные права на файлы и каталоги

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

Если же у вас есть доступ к shell, вы можете назначить права двумя командами.

Для каталогов:

find /путь_к_вашей_папке_wordpress/ -type d -exec chmod 755 {} ;

Для файлов:

find /путь_к_вашей_папке_wordpress/ -type f -exec chmod 644 {} ;

Защита важных файлов и каталогов- (wp-admin/, wp-config.php, wp-login.php, wp-includes)

Защита /wp-admin/
По этому адресу открывается консоль управления вашего сайта.

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

Или вы можете сделать это вручную.
Для этого вам нужно воспользоваться генератором файла htpasswd, затем скопировать полученный файл на ваш сервер, например, в каталог выше вашей установки wordpress.

Финальным шагом вам нужно создать или открыть файл .htaccess в корневой папке вашего сайта, и вписать в него следующий код:

AuthName "Wordpress Console"
AuthUserFile /путь_к_вашему_файлу/htpasswd
AuthGroupFile /dev/null
AuthType basic
require user имя_пользователя 

Замените требуемые значения.

Защита файла wp-login.php

Если вам нужно ограничить вход по ip адресам, впишите следующие директивы в файл .htacesss:

order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx

Таким образом, сначала вы запрещаете доступ со всех источников, затем открываете доступ только для конкретных ip. Порядок важен.

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

Перенесите этот файл из вашей корневой папки wordpress в папку на уровень выше. Выставьте права на файл 400 или 440, таким образом будут доступны только права на чтение для вас и для вашего сервера.

Если вы не можете перенести файл, включите в самый верх .htaccess следующий код, что полностью запретит обращение к wp-config.php:

order allow,deny
deny from all

Защита wp-includes/

Чтобы еще больше повысить безопасность WordPress, вы можете ограничить выполнение
скриптов в папке wp-includes/. Внесите в .htaccess следующий код:

RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]

Если у вас режим мультисайт, закомментируйте строку

'RewriteRule ^wp-includes/[^/]+.php$ - [F,L]'

Не разрешать поисковым роботам обрабатывать служебные страницы

Проверьте ваш файл robots.txt.

User-agent: *
Disallow: /feed/
Disallow: /trackback/
Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /wp-includes/
Disallow: /xmlrpc.php
Disallow: /wp-

Всё это служебные папки wordpress, которые поисковик не должен индексировать.

Спрячьте версию wordpress от потенциальных хакеров

Информация о версии находится в заголовке и в RSS фидах:

Чтобы убрать её оттуда, вам нужно включить следующий код в файл functions.php активной темы:

function wp_remove_version() {
return '';
}
add_filter('the_generator', 'wp_remove_version');

Измените имя администраторского аккаунта

По умолчанию wordpress создает имя ‘admin’, что упрощает возможность взлома с помощью brute-force атаки. Вам обязательно нужно его сменить.

Для этого зайдите в вашу базу данных с помощью приложения ‘phpmyadmin‘, найдите таблицу ‘wp_users‘ (префикс может отличаться), там будут записи с учетными данными. Откройте для редактирования учетную запись пользователя admin.
В поле ‘user_login‘ измените значение ‘admin‘ на ваш новый предпочитаемый логин и нажмите ‘Go‘.

Измените префикс базы данных

1. Сделайте бэкап вашей базы данных через phpmyadmin;
2. Откройте файл в простом текстовом редакторе и замените префикс “wp_” на значение вашего нового префикса;
3. Деактивируйте все ваши плагины;
4. Удалите старую базу данных и импортируйте ту, что с новым префиксом;
5. Измените настройки базы данных в файле wp-config.php на использование нового префикса;
6. Активируйте нужные плагины;
7. Обновите ЧПУ/Постоянные ссылки (даже без изменения структуры).

Включите SSL на сайте

Если вы получили SSL сертификат, включите поддержку SSL в файле wp-
config.php:

define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

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

Если вы заметили в логах вашего сервера активную brute-force атаку, вы можете её предотвратить, ограничив количество попыток входа с помощью плагина Limit Login Attempts.

Плагин не обновлялся 2 года, но прошел миллион установок, получил хорошие отзывы о работе, в том числе с текущими версиями wordpress. И он просто делает свою работу замечательно.

Запретите редактирование файлов плагинов и тем в консоли управления

Если вы не пользуетесь редактированием файлов из админки, можете отключить этот функционал в целях увеличения безопасности сайта. Запишите в файл wp-config.php строчку:

define('DISALLOW_FILE_EDIT', true);

к содержанию ↑

Если ваш сайт взломали

1. Отключите сайт
2. Сообщите вашему сервис провайдеру, возможно заражены другие сайты
3. Сделайте бэкап сайта
4. Измените все пароли в файле wp-config.php
5. Переустановите wordpress, таким образом файлы движка заменятся свежими копиями
6. Переустановите темы и плагины заново, чтобы убедиться, что в них не остался вредоносный код
7. Вы также можете использовать плагин Exploit Scanner для поиска потенциального вредоносного кода.

Помните, если взломщики украли ваш пароль и зашли на сайт, то даже после смены вами пароля, они всё еще могут оставаться в системе, потому что действуют рабочие cookie. Чтобы их отключить, вам нужно создать
новый секретный ключ. Откройте генератор секретных ключей wordpress, и внесите полученные ключи в файл wp-config.php.

к содержанию ↑

Защита WordPress на практике

Многое из всего написанного выше (и даже больше!) можно реализовать с помощью единственного плагина всего за 15 минут.

Об этом я написал полноценную статью

Вы можете выбрать конечно любой другой плагин по защите wordpress.
Наиболее популярные:

Здесь вы можете прочесть статью по настройке плагина Wordfence Security.

к содержанию ↑

Оставить заявку

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

Цена установки и полной настройки плагина iThemes Security — 500 р.

Форма связи через страницу контактов.

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