Главная Часть 1. Создание блога Глава 7. Безопасность блога Урок 153. Эффективная защита wordpress блога

Урок 153. Эффективная защита wordpress блога

защита вордпресс блога

Привет!

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

Обратимся к теории. Какие виды взломов блога могут быть?

  • Банальный перебор паролей. В вордпрессе это делается намного легче, потому что движок не умеет держать язык за зубами. Ввели логин и пароль, и где-то ошиблись — так он Вам скажет где именно. Если неверный логин - так и напишет, неверный пароль - тоже сообщит. Тем самым очень легко узнать какой логин используется, и уже под него начать подбирать пароли.
  • Не закрыты каталоги. Наверняка видели в каждом каталоге пустой файл index.php, который весит 0 байт, и в содержимом лишь комментарий на английском, который переводится как: "Молчание - золото". Так вот, я знаю людей, которые удаляют эти файлы, мол толку от них? Не вздумайте следовать их логике, от файлов толк еще какой. Например, при обращении www.site.ru/wp-content мы видим белый экран. Это благодаря пустому файлу index.php. Удалите его - и вместо белого экрана появится папка с навигацией по всему сайту. И любой сможет просмотреть все содержимое, а то и править его, если права стоят соответствующие.
  • Есть доступ к файлу wp-config.php. Явление редкое, но увы, встречающееся.
  • xss-атака, или правка запросов get, post. Думаю, новички мало что поняли, поэтому приведу пример. Например, у нас есть форма. Мы вписываем в нее данные, затем посылаем. Данные посылаются по одному из приведенных выше запросов. Если у злоумышленника есть возможность их править, то он в них различные скрипты отправить может, или еще чего. Поэтому будет лучше, если такой возможности у него не будет.
  • Поговорим мы также про защищенное соединение ssl. В принципе, можно и без него обойтись, тем более блогам. Но этот пункт для тех, у кого открыт на вордпрессе интернет магазин или что-то подобное.

Больше мне пока ничего в голову не приходит, так что если я какой-то пункт упустил - пишем в комментариях, я статью дополню. Эта будет базовая статья, про защиту wordpress.

Пункт 1. Защита wordpress. Меняем подсказки при входе

Открываем файл functions.php и вставляем в конец следующий код:

Теперь при вводе неправильного пароля, или неправильного логина, или вообще неверной информации, будет всплывать сообщение, что данные неверны. При чем, даже если логин правильный, а пароль нет, все равно будет писать: "неверные логин и пароль", что нам на руку.

Перебрать пароли будет теперь нереально, если будете использовать плагин Login LockDown, о котором я уже писал. Это плагин из разряда must have. Поэтому обязательно ставьте его!

 

Пункт 2. Защита wordpress. Защищаем от xss-атак.

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

Открываем файл .htaccess. Кстати, очень рекомендую новичкам прочитать вот эту статью про данный файл. Поймете какой он интересный и важный.

Рекомендую Вам сделать резервную копию файла. Я, конечно, сначала на себе проверяю, уже после этого пишу статью, но тем не менее, лучше перестраховаться. А то мало ли что?! 🙂

Вставляем в файл следующий код:

Все. Теперь если кто-то захочет править запросы вручную, ему будет вылезать ошибка. В общем, еще один балл в графу "безопасность"!

Пункт 3. Защита файла wp-config.

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

Открываем все тот же файл .htaccess и добавляем туда вот такой код:

Все! Теперь и к файлу подобраться будет невозможно. Если только не через хостинг или ftp.

Пункт 4. Скрываем версию wordpress

Не знаю как вам, но лично меня достала функция генератора версии. Я просто не могу понять, для чего ее делают? Какая польза от того, что в хедере генерируется значение: "Вордпресс 3.8" ? Для взломщиков польза большая. Ведь это сильно облегчает им работу! Теперь не надо гадать, какая версия ВП у Вас стоит. Даже школьники могут Вас взломать. Достаточно написать в поисковике: "уязвимости в вордпресс 3.4.2", если, к примеру, у Вас такая версия. И все, выйдет целый список уязвимостей и ошибок, которыми достаточно будет воспользоваться.

защита wordpress

Так вот, в хедере можете не ковыряться — не найдете Вы эту функцию 🙂 Дело в том, что она добавляется через другую функцию - wp_head(). К сожалению, эта функция помимо генератора добавляет еще множество других: подключение библиотек для скриптов, подключение различных стилей и файлов. Можно, конечно, через исходный код скопировать все файлы, которая эта функция вставляет, и вставить их, а функцию удалить. Но движок часто обновляется, и может быть так, что название какого-либо файла изменится, или добавится другой. Поэтому рекомендую саму функцию оставить, но генератор мы из нее сможем убрать, благодаря файлу functions.php. Открываем его.

Вставляем следующий код:

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

P.S. Настоятельно рекомендую также удалять файлы readme.html и license.txt! И удалять их после каждого обновления движка. Увы, эти файлы также дают лишнюю информацию о Вашем движке.

Пункт 5. Ssl-протокол.

Суть в следующем: все вы замечали, что сайт начинается с http. Ведь так? Это незащищенный протокол. То есть, при вводе логина, пароля, данные можно будет перехватить. Тому же провайдеру. Мало ли кого наняли в офис провайдера.

Вообще редко такое встречается, но всякое может быть.

защита wordpress

Чтобы данные хоть как-то шифровались, придумали другой протокол - https. Наверняка видели такой в любом крупном сервисе. На яндекс почте, или в магазине сони. Увы, за все нужно платить. В нашем случае, необходимо приобрести сертификат, который стоит в районе 2000 руб в год. Купить его можно у любого, уважающего себя, хостинг-провайдера.

Раньше как-то обходились без сертификата, работая через хостинг. Почему-то сейчас такое не работает. Попробовал у двух хостеров. Так вот, в чем фишка. Сертификат состоит из двух частей. Первая шифрует данные. Вторая их получает и расшифровывает. Все очень просто.

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

Соответственно теперь у нас будет защищенное соединение при входе на блог (там, где форма входа) и в самой админке.

Ну и самое важное - убедитесь, что на хостинге включен ssh-протокол. А то он может быть по-умолчанию выключен.

Защита wordpress. Советы

Держим все каталоги закрытыми

Если Вы создаете папки на сервере, не забывайте вставлять пустой файл index.php в них. Можно упростить задачу - добавить в файл .htaccess строчку:

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

Меняем имя админа

Большая часть блогеров оставляет логин admin. Это огромная ошибка. Скажите, что легче, подобрать пароль (даже если он из 50 символов) к уже известному логину, или подбирать море логинов, и к каждому из них пароль? Конечно, второй вариант. Так вот, либо создайте другую учетную запись, с нужным логином, зайдите через нее и удалите существующую admin. Либо перейдите в базу данных, и там в таблице wp-users измените логин на нужный.

Пароли

Меняйте пароли на очень сложные. Вообще для всего: для админки, для фтп, для базы данных. Закройте глаза, и просто на клавиатуре наберите 20-30 символьный пароль, с большими и маленькими буквами, с цифрами и спец символами. Можете использовать генераторы паролей, но лично у меня небольшая параноя на сей счет. Не доверяю генераторам и менеджерам паролей. А свой генераторы лень писать. Поэтому я делаю так: сохраняю в обычном текстовом файле все сгенерированные пароли, и когда надо, открываю этот файл, копирую пароль - захожу в админку. Сам файл также в архиве с паролем.

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

защита wordpress

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

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

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

На этом у меня все, рад, что пройден такой урок, как защита wordpress. Надеюсь, он вселит Вас уверенность 🙂

До новых встреч!

Полезные статьи Вам на почту!

Нас более 700 человек!

Комментарии

AAMix
0

Олег, безопасность сайта в последнее время меня стала интересовать все больше и больше.

И вводная информация уже для меня стала открытием. Спасибо.

В закладки!

С уважением Александр Афанасьев.

19.07.2014
Sly
0

Успехов Вам с блогом 🙂

21.07.2014
Desh
0

Отличная статья! Тебе бы продвинуть ее по соответствующему ключу. Смотрю, у тебя уже от 300 чел и выше, искренни этому рад. Надеюсь благодаря этой статье будет еще столько же)) Успехов тебе!

24.07.2014
Sly
0

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

24.07.2014
Егор
0

Sly, у тебя блог отличный. В закладки добавил. Прочитал зачем пустые файлы нужны, как-то раньше не придовал им значения, думал разрабы движка балуют))) шутка, а что думаешь по поводу замены файла wp-login на другой, т.е смена адреса входа в админку. Например на Таймвеб не предлагают заменить изначально адрес. А так заменил и пусть ищут.

05.11.2014
Sly
0

Можно и заменить, тоже очень хорошая идея. Просто читал - в wordpress раньше проблема была с этим. Там какие-то функции отказывались правильно работать, поэтому как-то не старался изменить адрес. Но такие штуки проделывали в DLE и весьма успешно. Там количество обращений к админке упали до нуля, что очень радует.

09.12.2014
BOPOH
0

>> Пункт 5. Ssh-протокол.

Хотели про SSL написать? SSH это немного другое ))

19.01.2015
Sly
0

SSL - все верно)

19.01.2015
Коля
0

Спасибо, полезная статья.

09.02.2015
Юрий
0

Здравствуйте
Согласно изложенному в уроке 153 изменил настройки плагина xxc - после его сохраниния - был выброшен с сайта
Все попытки войти были безуспешны
Удалил модифицированы плагин - попытался установить предидущую версию - безуспешно - на сервер записывается измененный файл
Сайт висит - доступа к нему сейчас нет
Подскажите - что возможно сделать
С уважением

06.06.2015
Юрий
0

Parse error: syntax error, unexpected T_STRING in /sata2/home/users/.………….../www/www…………../wp-content/themes/device/functions.php on line 92
- строка сообщения после попытки войти в админку

06.06.2015
Юрий
0

ОШИБКА 500

Internal Server Error - сообщение с севера

06.06.2015
Юрий
0

Стандартный размер плагина - 925 байт
При записи на сервер его размер меняется на - 896 байт

06.06.2015
Юрий
0

прошу прощения за некорректную запись - anti-xss-attack.php

06.06.2015
Sly
0

Добрый день!
Немного не понял, в данной статье не идет речь о данном плагине. Вся защита xss здесь базируется на дополнении кодом файла .htaccess. А судя по ошибке Вашей, у Вас проблема в файле темы functions.php на 92 строке. Рекомендую файл открыть редактором, и посмотреть что там.

09.06.2015
Русла
0

Статья просто супер!!! давно искал как изменить подсказки для входа, а тут еще и куча всего полезного!!! Успехов Вам!!! и жду еще статьи по безопасности

29.06.2015
Sly
0

И Вам больших успехов 🙂 А насчет статьи, думаю, эта последняя будет. http://wpguru.ru/sozdanie-bloga/problema-bezopasnosti-bloga-wordpress.html . Ничего такого особо там нет, просто пытаюсь понизить страх быть взломанным у читателей 🙂

16.07.2015
Ивашка
0

Давно уже есть плагины комплексной защиты, защищающие от подавляющего большинства атак

01.10.2015
Sly
0

Ага, которые жутко тормозят блог)

05.10.2015
Роман
0

Здравствуйте! Что-то не работает — внес код в htaccess, тот что указан в пункте про защиту wp-config, и сайт перестал открываться — 503 ошибка))

02.02.2016
0

Поправил код. Он рабочий, просто вместо всяких &lt там стоят елочки. Это моя подсветка кода намудрила)

02.02.2016
Роман
0

Спасибо, все получилось!

02.02.2016
0

Успехов Вам!

02.02.2016

Оставить комментарий

Поделиться