Главная Новости

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

Опубликовано: 01.09.2018

Вводное слово

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

То ли качество кода стабилизировалось, то ли владельцы сайтов усилили свою ответственность. Надеюсь, что повлияли оба фактора.

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

Причины взломов на практике сводятся к двум вещам:

заброшенные и неподдерживаемые плагины — вам всегда нужно устанавливать обновления; связанное с паролями и правами — это нужно один раз правильно настроить и придерживаться;

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

Серьезно.

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

Я остановился на плагине BackUpWordPress .

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

Как настроить расписание зависит от того, что и насколько часто меняется конкретно на вашем сайте.

Далее, вы можете настроить основные рекомендации, повышающие безопасность WordPress.

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

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

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

Во-первых, это удар по производительности сайта. Больше кода — дольше загрузка .

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

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

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

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

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

Если на сайте установлены 30-50 плагинов, то вы явно делаете что-то не то.

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

Придерживайтесь простого, но эффективного принципа:

Меньше кода, меньше проблем.

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

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

Давайте скажем прямо. Никто не относится с такой ответственностью к безопасности вашего сайта, как вы.

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

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

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

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

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

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

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

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

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

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

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

Такая же «котовасия» происходит с премиум темами, которые включают в себя дополнительные премиум плагины вроде Visual composer, Revolution slider, Layer slider и так далее.

Владельцы настраивают сайт, добиваются его желаемой работы, и по понятным причинам боятся его обновлять.

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

Это частая ситуация, поэтому уделите внимание двум вещам:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Защищенные файлы и системные каталоги

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

Выставьте права 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.

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

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

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

Сделайте бэкап вашей базы данных через phpmyadmin; Откройте файл в простом текстовом редакторе и замените префикс «wp_» на значение вашего нового префикса; Деактивируйте все ваши плагины; Удалите старую базу данных и импортируйте ту, что с новым префиксом; Измените настройки базы данных в файле wp-config.php на использование нового префикса; Активируйте нужные плагины; Обновите ЧПУ/Постоянные ссылки.

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

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

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

config.php:

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

На этом сайте действует сертификат от Cloudflare, который выдается бесплатно, но требуется подключить и настроить этот сервис.

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

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

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

По защите входа есть другие замечательные плагины. Написал отдельную статью обзор по плагинам безопасности — советую прочитать .

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

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

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

define('DISALLOW_FILE_EDIT', true);

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

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

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

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

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

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

Почитайте статьи, которые я написал для вас.

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

Делитесь вашим опытом, буду рад его услышать, задавайте вопросы, спрашивайте помощь.

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

rss