Защита сайтов на wordpress
Опубликовано: 01.09.2018
Причина написание данной статьи послужило то, что очень много людей создают сайты на wordpress и даже не задумываются о их безопасности, жертвами взломщиков становятся неопытные пользователи.
Сайт с нуля на WordPress-Урок 2 -Защита сайта и его базовая настройка
В основном взломы происходят по следующем причинам :
1. Админы сайта не обновляют плагины и сам движок.
2. Скачивают бесплатные темы с различных сайтов, которые не смотря на репутацию предлагают скачать архив шаблона с вирусом. Да, компьютерный антивирус не найдёт там никакого вируса, но когда вы установите данный шаблон на хостинг, тогда вредный код начнёт действовать. Поэтому после загрузки шаблона установите плагин TAC , который проверит ваш шаблон на наличие вредного кода.
Защита сайта на WordPress. Полное руководство от Александра Сокирки.
Давайте выполним простые действия, чтобы защитить wordpress сайт :
1. Самый простой способ защиты любого сайта является ограничение доступа в админ панель сайта по ip.
Создаём файл .htaccess следущего содержания и добавляем его в папку wp-admin
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress order deny,allow allow from 81.09.24.2 deny from allВместо 81.09.24.2 вписываем свой ip адрес, который можно узнать с помощью сервиса 2ip.ru. Но данный способ эффективен только в том случае, если ваш ip постоянный. За это удовольствие нужно платить, примерно, 100 рублей своему интернет-провайдеру в месяц. Меня это не устраивает, поэтому идём дальше.
В большинстве случаях, когда мы видим форму входа, то нам остаётся лишь узнать имя админа или редактора, и затем подобрать пароль. В wordpress, чтобы узнать логин админа, нужно нажать на имя автора записи. На моём сайте нажмите над записью на имя Дмитрий и перед вами откроется новая страница https://chempalov.ru/author/dmitry , где dmitry – это логин. И неважно логин это админа или редактора, в любом случае мы сможем нанести вред , если подберём пароль. По этой причине некоторые удаляют в файле шаблона строчку с автором. Но мы этого делать не будем, а установим лимиты на неправильную авторизацию.
2. Установка лимитов на неправильный ввод логина, пароля, ошибок 404. Данную функцию мы реализуем с помощью плагинов Limit Login Attempts, Better WP Security, Login Security Solution, и тд. Вам нужно установить только один из перечисленных.
При установки первых двух перечисленных плагинов не требуется каких -либо дополнительных действий в настройках, так как подойдут настройки по умолчанию.
Пару слов о Limit Login Attempts – очень понятный и простой плагин, отлично выполняет свою работу по защите от брута.
Плагин wordfence http://wordpress.org/plugins/wordfence
Данный плагин представляет собой сканер и позволяет отслеживать посетителей вашего сайта, а так же установить ограничения на вход в админку сайта. За подобные никчёмные радости нужно платить, например, памятью вашего сервера, где хостятся ваши сайты, поэтому не рекомендую. Более подробно я написал о плагине здесь.
Плагин Better WP Security
Данный плагин нужно установить сразу после установки wordpress. Имеет большое кол-во плюсов: позволяет убрать возможность редактирования сайта из панели администрирования, изменяет некоторые файлы, тем самым усложняет жизнь хакеру. У плагина есть существенные недостатки: несовместим с некоторыми плагинами и темами, а так же не работает функция скрытия входа в админку. Более подробно о настройках можно почитать в этой статье.3. Настроим безопасность на хостинге сайта
В директории нашего сайта в файле .htaccess впишите следующие значения, указанные ниже. Пример файла .htaccess для любого сайта:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress order allow,deny deny from all order allow,deny deny from all satisfy allСамое верхнее значение, начинающая с # BEGIN WordPress должно уже прописано, если в директории сайта создан файл .htaccess. Далее следует строчка, защищающая файл .htaccess от роботов. Последняя строка закрывает доступ файл wp-config.php от посторонних.
Если по каким то причинам файла .htaccess нет, то создайте. Можно создать текстовый документ на рабочем столе и переименовать на .htaccess и далее по ftp доступу скинуть в директорию вашего сайта.
Теперь обязательно создадим файл .htaccess в папках wp-content, wp-includes, uploads и впишем туда следующий код, который запрещает выполнение php:
deny from allВсё было бы хорошо и на этом защиту можно было оставить, но, основной принцип работы плагинов – это блокировка ip , который превысит лимит на ввод пароля или логина . А , если менять ip каждые 20-40 секунд и дальше вводить неправильно пароль, что технически осуществимо, тогда данный способ защиты нам не поможет и мы переходим к следующему шагу – Установка капчи.
4. Установка плагинов капчи captcha или SI CAPTCHA Anti-Spam и тд. Капча защитит сайт от спам роботов и брута.
5. После установки и обновления сайта на wordpress, нужно открыть файл wp-config.php и прописать ключи и соли для аутентификации. Для этого нужно перейти на по ссылки сайта, указанного в файле wp-config.php, примерно, на 40 строке https://api.wordpress.org/secret-key/1.1/salt/ и скопировать данную запись, вставив в 45-52 строку вместо пустых полей.
6. Скрытие входа в админку . Осуществляется разными способами. Если вы не используете регистрацию пользователей, то можно смело скрыть вход в админку.
7. Очень длинные пароли админа, к базе данных и тд, например, пароли из 20 символов. По статистики пароль из 15 символов подбирается за 3 месяца.
Поведём итоги: чтобы защитить сайт на wordpress нужно обязательно установить сложный пароль, капчу, лимиты на неправильный ввод паролей, постоянно обновлять плагины и сам движок.