20 советов по безопасности WordPress

20 советов по безопасности WordPress

Категории: Безопасность

Обновляйте системные файлы WordPress

На данный момент процедура обновления WordPress очень и очень простая, и справиться с этим может практически любой пользователь. Для того, чтобы обновить WordPress, необходимо зайти в панель администрирования, раздел «Инструменты» — «Обновление» или в новых версиях «Консоль» —  «Обновления» и нажать кнопку «Обновить WordPress», после чего вам возможно понадобится ввести логин, пароль и имя FTP сервера, чтобы программа обновления WordPress  могла получить доступ к папкам и файлам. После чего запустится обновление WordPress, и если все хорошо, через пару минут на вашем блоге будет стоять новейшая версия  WordPress. Если автоматически обновить блог не удается, пользуйтесь старым методом, скачайте новую версию WordPress, распакуйте на своем компьютере и загрузите на сервер, перезаписывая существующие файлы. Естественно перед обновлением, нужно сделать резервную копию базы данных и файлов блога.

Если страшно обновлять самостоятельно, или ничего не получается, обращайтесь.

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

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

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

Резервное копирование WordPress

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

Закройте папки блога от просмотра

Начиная с версии WordPress 2.7 в каждой служебной папке WordPress, теперь присутствует файл index,php  который препятствует просмотру содержимого папки, с помощью обычного браузера. Также запретить просмотр папок без индексного файла, можно с помощью добавления строчки «Options -Indexes» в файл .htaccess. Если вы не обновляете свой блог, обязательно воспользуйтесь этим советом и как минимум создайте пустой файл index.html в папках «wp-content/plugins» , «wp-content/uploads«.

Отключите сообщения о ошибках авторизации

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

Отредактировать файл «functions.php» который лежит в папке шаблона вашего блога, добавив строчку:

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

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

Скройте версию WordPress

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

remove_action('wp_head','wp_generator');

Второй способ более простой, устанавливаем все тот же плагин Secure WordPress и в настройках ставим галочку напротив пункта «Версия WordPress».

Удалите пользователя admin

Я думаю все знают, что самым главным пользователем в блоге является пользователь admin, и имя пользователя admin идет по умолчанию, при установке WordPress. Так было до версии WordPress 3.0, теперь при установке, пользователю дают возможность выбрать логин для администратора блога. Если же ваш блог установлен давно, то я практически уверен, что в нем есть пользователь admin с правами администратора блога. Соответственно, злоумышленники будут пытаться подобрать/взломать пароль именно этого пользователя. Самый просто способ поменять имя пользователя с admin на какое-то другое:

  1. Создаем нового пользователя с правами доступа «Администратор».
  2. Выходим из панели администрирования блога и заходим под новым пользователем.
  3. Убедитесь в том, что все опции администрирования блога, вам доступны при авторизации с новым логином
  4. Найдите пользователя admin и удалите его. При удалении, вас спросят, на какого пользователя переназначить существующие записи которые сделал пользователь admin, естественно это нужно сделать на пользователя которого вы только что создали.

Также можете попробовать воспользоваться плагином User Changer, но я обычно делаю это средствами WordPress.

Создайте безопасный пароль для администратора

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

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

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

Измените ключи шифрования WordPress

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

define('AUTH_KEY',         'впишите сюда уникальную фразу');
define('SECURE_AUTH_KEY',  'впишите сюда уникальную фразу');
define('LOGGED_IN_KEY',    'впишите сюда уникальную фразу');
define('NONCE_KEY',        'впишите сюда уникальную фразу');
define('AUTH_SALT',        'впишите сюда уникальную фразу');
define('SECURE_AUTH_SALT', 'впишите сюда уникальную фразу');
define('LOGGED_IN_SALT',   'впишите сюда уникальную фразу');
define('NONCE_SALT',       'впишите сюда уникальную фразу');

Ключи генерируются на специальном сервисе WordPress, просто откройте страницу, скопируйте строки и вставьте их в файл конфигурации.

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

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

Установите плагин WordPress File Monitor

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

Установите плагин WP Antivirus

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

Установите плагин WP-Security Scan

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

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

Защитите файл настроек WordPress wp-config.php

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

order allow,deny
deny from all

Также для тех кто знает что такое chmod, рекомендуется установить chmod 750 на файл «wp-config.php» сделать это можно через FTP соединение введя команду chmod 750 wp-config.php.

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

Используйте SFTP вместо FTP

Это легче написать чем сделать. На большинстве хостингов, не работает ни sFTP ни FTP+SSL. Есть еще варианты пользоваться SSH вместо FTP, такое возможно чаще всего лишь в тех случаях если вы покупаете VPS хостинг, поэтому останавливаться на этом пункте подробнее я не стану. Если ваш хостер поддерживает защищенное FTP соединение, или предоставляет SSH доступ, пользуйтесь на здоровье.

Используйте SSL шифрование

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

define('FORCE_SSL_ADMIN', true);

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

Измените префикс таблиц в БД WordPress

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

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

Мало кто знает, что файл конфигурации WordPress «wp-config.php«, можно вообще убрать из папки блога, на один уровень вверх, там где его никто не найдет. К примеру блог находится в папке «/domain.com/public_html/» как правило к папке «domain.com» доступа через веб уже нет, но если переместить туда файл wp-config.php, WordPress все еще будет работать, потому как умеет искать файл конфигурации в папке на уровень выше. (получилось немного запутанно, но надеюсь что разберетесь).

Дополнительная авторизация wp-admin

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

Права доступа к файлам и папкам

Можно очень долго пытаться рассказывать что такое chmod 755 или r+w и другие всякости, на тему прав доступа к файлам вашего блога, понадеемся на то, что вы не меняли никаких прав и все у вас как нужно, но на всякий случай:

/wp-admin/ — папка панели администрирования: доступ на запись файлов, должен быть только у пользователя хостинга.
/wp-includes/ — служебные файлы WordPress: доступ на запись файлов, должен быть только у пользователя хостинга.
/wp-images/ — картинки WordPress: доступ на запись файлов, должен быть только у пользователя хостинга.
/wp-content/ — различное содержимое добавляемое пользователями блога: доступ на запись файлов, может быть у всех, пользователя, группы и публичный. Однако по некоторым рекомендациям доступ на запись ограничивают и для этого каталога.
/wp-content/themes/ — шаблоны WordPress блога: доступ на запись файлов, должен быть только у пользователя хостинга, если хотите использовать встроенный редактор шаблонов, тогда доступ нужно дать и для группы
/wp-content/plugins/ — плагины WordPress: доступ на запись файлов, должен быть только у пользователя хостинга.

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

А у кого есть компьютер и Wi-Fi тому обязательно пригодится сайт на котором есть  всё для пользователя компьютера, он и является спонсором этого поста.

Комментарии: 10Напишите свой комментарий!

  1. Yulian Caesar Написал(а):

    Отличные рекомендации!
    Самое главное — это бэкап, надежный пароль и своевременные обновления.
    Я, например, меняю пароль примерно раз в месяц.

  2. Евгений Написал(а):

    Да, суперская статья.

  3. toribloger Написал(а):

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

  4. rambomzh Написал(а):

    количество рекомендаций впечатлило…
    спасибо, автору… узнал много нового..

  5. BloggerMen Написал(а):

    Хорошая подборка рекомендаций.

    А интересно, много таких, кто использует абсолютно все советы?

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

  6. Денис Написал(а):

    Занятненько… даже страшновато)) ОДин фиг, если кто задастся целью сломать, то сломает..

  7. Videotutor Написал(а):

    Я бы добавил совет — помещать на время отпуска в каталог «wp-admin» — файл «.htaccess» со строчками:

    order allow,deny
    deny from all

  8. Dmitriy Donchenko Написал(а):

    И тогда если вдруг во время отпуска нужно будет срочно сделать что-то с блогом, то в админку ну никак не попадешь? Хотя с другой стороны можно зайти на ФТП и подправить файлик. :)

  9. Doktor Написал(а):

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

  10. Dmitriy Donchenko Написал(а):

    Именно поэтому на сайте который вы указали в комментарии красуется «DataLife Engine Nulled by M.I.D-Team» ? :)

Оставьте комментарий Ваш шанс быть услышанным!