10 хаков безопасности для WordPress, чтобы защитить вас от взлома

67

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

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

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

Познакомьтесь с основами

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

Начните с того, что сделайте ваши пароли трудными для угадывания. Как сделать так, чтобы им было тяжело, а себе легко? Возможно, вы можете забыть о хитрых заменах букв, таких как «h3ll0», смешивании регистров и вбрасывании знаков препинания, и вместо этого использовать мнемонику. Соединив три или четыре слова вместе, чтобы получилась забавная картинка, ваш пароль будет намного легче запомнить, чем «t3r%?9.Fq!G», и его будет на несколько порядков сложнее взломать. Только не используйте «CorrectHorseBatteryStaple». Полное и забавное объяснение этого принципа см. в XKCD 936.

Вы также должны поддерживать свои плагины и ядро ​​​​WordPress в актуальном состоянии. Теперь это проще сделать с более поздними версиями WordPress. Начиная с WordPress 3.7 вы можете настроить четыре типа автоматических обновлений: основные файлы, плагины, темы и файлы перевода. Предупреждение — в зависимости от вашей настройки вы можете отключить некоторые из них, чтобы вы могли протестировать их перед развертыванием обновлений. Хотя даже если вы оставите их в живых и столкнетесь с проблемами, у вас все равно будут ежедневные резервные копии, на которые можно положиться, верно?

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

Это не те учетные данные для входа, которые вы ищете

В дополнение к более надежному паролю вам также следует подумать о переносе URL-адреса администратора по умолчанию и использовании чего-то другого, кроме «admin» для вашего имени пользователя. Если у хакеров нет конкретной цели, они обычно ищут запуск ботов для автоматизации процесса. Эти боты ищут WordPress, пробуют настройки по умолчанию и самые распространенные пароли — так что давайте отойдем от настроек по умолчанию, чтобы усложнить эту задачу.

Возможно, самый простой способ изменить URL-адрес для входа — взглянуть на такие плагины, как HC Custom WP-Admin URL. Конечно — сначала запустите резервную копию!

Самый простой способ изменить имя пользователя-администратора — создать нового пользователя-администратора с выбранным вами именем пользователя и удалить старое. Если вы заблокированы из своего администратора, потому что вы не помните свое имя пользователя, вам понадобится немного более радикальное решение. Войдите в phpMyAdmin и загрузите базу данных WordPress. Прокрутите вниз с левой стороны и найдите таблицу «ks29so_users». Найдите имя пользователя, которое вы хотите изменить, т. е. «admin», и измените значение user_login, чтобы оно было вашим новым именем.

Заключительное слово о процессе входа в систему

Прежде чем мы отойдем от процесса входа в систему, нужно решить еще пару задач. Помните тех ботов, которые угадывают пароли? Давайте усложним им задачу, сказав, что вы можете сделать только определенное количество попыток в течение определенного периода времени, и что перед тем, как вы это сделаете, вы должны правильно расшифровать CAPTCHA. Для Captcha вы можете попробовать установить этот плагин и все готово. Дополнительное преимущество — премиум-версия интегрируется с BuddyPress и Contact Form 7, чтобы защитить ваши контактные формы от спама.

Чтобы ограничить количество попыток входа в систему, вы можете либо добавить плагины, такие как «Ограничить количество попыток входа», либо обратиться к своему хостинг-провайдеру, у которого может быть решение — например, в Wpengine это настроено по умолчанию.

Защита WordPress с помощью изменений в .htaccess

Надеюсь, вы готовы немного запачкать руки, пока мы переходим к предложениям, которые немного сложнее, чем «установить плагин»! Добавьте эти предложения после строки #END WORDPRESS.

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


orderallow,deny
deny from all

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

Ниже приведен комбинезон для блокировки просмотра каталогов:

# directory browsing
Options All -Indexes

Если вы хотите заблокировать конкретно один файл, используйте следующее:


Order allow,deny
Deny from all

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

Как только вы узнаете IP-адрес, просто добавьте эти строки, заменив 127.0.0.1 неверным IP-адресом:

Order Deny,Allow
Deny from 127.0.0.1

Чтобы обновить это с помощью новых IP-адресов, просто добавьте новые строки «запретить от». Если вам нужно заблокировать весь диапазон, просто пропустите этот диапазон. Другими словами, чтобы заблокировать все от 127.0.0.0 до 127.0.0.255, вы должны добавить:

Deny from 127.0.0.

Последний совет в этом разделе — защитить сам .htaccess. Есть довольно много сайтов, распространяющих методы, которые хороши, но не велики. Следующий метод любезно предоставлен Джеффом Старром из Perishable Press, и он намного более тщательный:

# STRONG HTACCESS PROTECTION

 order allow,deny
 deny from all
 satisfy all
Улучшения базы данных

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

Сначала мы скажем wp-config.php, что мы меняем префикс таблицы. Откройте этот файл и отредактируйте следующее:

$table_prefix = 'ks29so_';

Добавьте несколько цифр или букв:

$table_prefix = ‘ks29so_3drt5_’;

Затем вам нужно просмотреть и изменить каждое из имен таблиц в вашей базе данных. Для каждой из ваших 11 таблиц выполните команду в следующем виде:

RENAME TABLE ‘ks29so_commentmeta‘ TO ‘ks29so_3drt5_commentmeta‘;

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

SELECT * FROM ` ks29so_3drt5_options` WHERE `option_name` LIKE'%ks29so_%'

К сожалению, вам нужно будет просмотреть каждый и обновить.

Затем нам нужно посмотреть на таблицу UserMeta, тот же процесс, что и раньше:

SELECT * FROM ` ks29so_3drt5_usermeta` WHERE `meta_key` LIKE'%ks29so_%'

Наконец, вы также можете ограничить пользователя базы данных MySQL только следующими правами чтения и записи: SELECT, INSERT, UPDATE и DELETE. Таким образом, вы можете отозвать привилегии для структуры базы данных и администратора: DROP, ALTER и GRANT. Однако это может затруднить обновление ядра и добавление новых плагинов, поскольку им может действительно потребоваться изменить структуру базы данных. Если вы пойдете по этому пути, вы должны быть внимательны к своим резервным копиям и тестированию.

Новые ключи пожалуйста

Ваши секретные ключи хранятся в файле wp-config.php. Однако они не будут такими уж секретными, если вы оставите их в качестве значений по умолчанию! Улучшите свою безопасность, изменив их — однако я рекомендую вам не полагаться на собственное ощущение случайности и сложности. Используйте что-то вроде этого сервиса — он не только определяет ключи для вас, но и делает их все сразу в правильном формате, чтобы вы могли вставить их прямо в свой файл. Нажатие кнопки «Обновить» показывает, что вы получаете новый набор ключей каждый раз, когда загружаете это.

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

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

Весенняя уборка

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

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

Применяется входная политика — разрешить только доверенный IP-адрес администратора

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

orderdeny,allow
allow from 127.0.0.1
deny from all

(опять же, замените 127.0.0.1 на свой IP-адрес).

SSL

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

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

define('FORCE_SSL_ADMIN', true);
Другие вещи, на которые стоит обратить внимание

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

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

Что вы сделали, чтобы обезопасить свой сайт WordPress? Где вы проводите грань между безопасностью и доступностью/юзабилити? Дай мне знать в комментариях.

Источник записи: instantshift.com

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