Защищаемся от взлома сайта Вордпресс

Пару дней назад я опубликовал статью о массовом взломе сайтов на Вордпресс. Могу дать один совет — как защитить ваш сайт на Вордпресс от взлома. Для начала — небольшое встпуление.

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

Тоже самое — ваш сайт. Прежде чем его взломать, вору-взломщику необходимо знать — на каком типе «движка» или «не — движка» стоит ваш сайт. Для этого нет ничего более простого, как открыть ваш сайт в режиме чтения исходного кода. В любом браузере есть такая функция. Например, открываю сайт известного многим Гудвина — wpbot.ru. Можно сказать — моего конкурента. Его сайт постарше моего каталога. Гудвин умный парень, много пишет о шаблонах и способах защиты, но. В браузере Мазилла я открываю его сайт в режиме чтения исходного кода и что вижу: в разделе заголока, описании тема-тегов, есть вот такая строка (я убрал символы начала и конца тега) :

meta name=»generator» content=»Serendipity v.1.2-beta4″

Ух ты! Оказывается, сайт Гудвина уже не на Вордпрессе! Движок называется Serendipity версия 1.2-beta4. Не знаю, не слышал, да, и мне это не инетерсно.
Теперь открываем еще один сайт одного из моих «конкурентов» — сайт Анастасии, blogstyle.ru. Что я вижу в исходном коде у неё:

meta name=»generator» content=»WordPress 2.9.1″

Отлично! Сразу видно, Анастасия следит за обновлениями. Стоит предпоследняя рабочая версия Вордпресс.
Кто умеет открывать исходный код — попробуйте открыть у них, увидите то же самое. А теперь — попробуйте открыть у меня. Ну, и как результат? Увидели? Нет? Отлично!
Все, что вы там можете увидеть, выглядит вот так:

meta http-equiv=»Content-Type» content=»text/html; charset=UTF-8″
meta name=»robots» content=»index, follow»

Почему нет мета-тега «generator»? Потому что я его закрыл. Очень простой вариант. Правда, он не 100% защита, но все же. Взломщик не видит, на каком движке работает ваш сайт, это почти то же, что если бы вор, стоя возле вашей двери в квартиру, не видел замка и не мог определить его тип. Соответственно. ему надо методом «тыка» потратить гораздо больше времени на подбор отмычки. Есть ли у него время для этого? Вопрос. Захочет он возиться? Если имеет на это время и заказ — будет возиться. Если нет — пойдет дальше, искать менее защищенный сайт. Попробуйте посмотреть исходный код главной страницы Яндекса. Там вы почти ничего не увидите. Яшка знает, что надо защищать свой дом…

А теперь — короткая инструкция, как закрыть мета-тег, сообщающий тип (имя) вашего генератора сайта.

Откройте файл function.php и добавьте вверху после начала функции — <?php — вот такую конструкцию:

remove_action(‘wp_head’,’wp_generator’);

Если файла function у вас в шаблоне нет, создайте его (только правильно!), и вставьте эту функцию между тегами начала и конца функции PHP: <?php и ?>.

Есть вопросы — спрашивайте в комментариях.

8 комментариев на записьОтправить ваши
  1. Я ещё новичок, подскажите пожалуйста где в WP находятся мета теги. никак не могу найти.

    • Панель администратора -> Записи -> Метки записи. Это и есть мета-теги. В редакторе Записи — справа от окна ввода текста, под секцией Рубрики, — секция Метки.
      Метки создаются для расширения мета-тегов для определенной рубрики. Например, у вас на сайте есть рубрика «Новости». Тегами вы можете структурировать свои публикации в этой рубрике, например, статья о политических новостях: рубрика «Новости», метки: «Политика», «Личность в политике».
      Когда у вас появятся такие Метки в записях, вы сможете использовать Виджет: «Облако меток», в котором вы сможете вывести все метки ваших публикаций. Посетители смогут выбирать записи по меткам: например, кликнув на метку «Политика» — просмотреть все записи в рубрике «Новости» с меткой «Политика».
      По такому же принципу можно писать в рубрике «Новости кино», и создать метки для эт ой рубрики: «Бред Питт», «Брюс Уиллис».
      Надеюсь, мой расширенный ответ дал вам пищу…

  2. Со строкой «неправильного» генератора сайта — неплохая идея :) , но реально это годится только для защиты от очень ленивого взломщика. Если хакер ленив или просто туп, то он и будет искать только тэг генератора, в противном же случае, он просто настроит регулярное выражение для поиска вхождений в коде страницы фрагмента «wp-content», который у движка WordPress никак не спрятать…

    В общем, эта «защита» ничего не даст, увы…

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

  4. По теме совета скажу, что мне больше нравится идея использования фейковой строки generator типа как у Гудвина, нежели её скрытие вообще.

    От себя посоветую обратить внимание на плагины AntiVirus for WordPress и WP Security Scan. Если эти плагины найдут какие-нибудь погрешности в защите блога, что скорее всего произойдёт, тогда стоит поискать пути их устранения.

    Кстати, если установить сейчас WP 2.9.2 со стандартными параметрами, WP Security Scan скорее всего заругается вот на что:

    Your table prefix is wp_.
    «admin» user exists.
    The file .htaccess does not exist in wp-admin/

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

    И ещё один плагин, думаю, стоит использовать:

    Login LockDown — A WordPress Enhanced Login Security Plugin
    Login LockDown records the IP address and timestamp of every failed WordPress login attempt. If more than a certain number of attempts are detected within a short period of time from the same IP range, then the login function is disabled for all requests from that range. This helps to prevent brute force password discovery. Currently the plugin defaults to a 1 hour lock out of an IP block after 3 failed login attempts within 5 minutes. This can be modified via the Options panel. Admisitrators can release locked out IP ranges manually from the panel.

    Version 1.5 released — Implemented wp_nonce security in the options and lockdown release forms in the admin screen. Fixed a security hole with an improperly escaped SQL query. Encoded certain outputs in the admin panel using esc_attr() to prevent XSS attacks. Fixed an issue with the ‘Lockout Invalid Usernames’ option not functioning as intended.

  5. Да, и сайт Гудвина всё же на Вордпрессе, а та строка у него вроде пугала на огороде :D

  6. Предположим, я слепотупой вломщик и зайдя на сайт http://www.bestwordpress.org.ua не врубился, что за движок используется.

    Зато я знаю волшебный адрес http://2ip.ru/cms/
    Несколько секунд и вуаля: «WordPress найдены признаки использования»

    Или спрошу у Яндекса и получу ответ:

    Самые простые варианты определения движка сайта я рассматривать не буду (когда движок указан в нижней части сайта, когда используется дефолтный фавикон движка либо движок можно определить по характерному дизайну или элементам интерфейса). В этой статье я также не рассматриваю сложные для обычных пользователей варианты определения движка (http заголовки, cookies и т.д.), а также определение форумных движков и движков интернет-магазинов.

    WordPress

    Начну со своего любимого движка.

    WordPress можно определить, набрав в адресной строке браузера адрес админки:

    http://site.ru/wp-admin

    или страницу логина:

    http://site.ru/wp-login.php

    Определить сайт на WordPress можно, посмотрев html код. В Mozilla Firefox посмотреть html код страницы можно путем нажатия клавиш Crtl+U на клавиатуре или зайдя в меню «Вид — Просмотр исходного кода». В Internet Explorer исходный код можно посмотреть через «Вид — Источник», в браузере Opera – «Вид – Исходный код».

    Если в html коде встречаются упоминания о версии движка:

    либо в пути к файлу стилей css или фавикону встречается «wp-content»:

    или в пути к скриптам или плагинам указано «wp-content»:

    или в пути к картинке указано «wp-content» (путь к картинке можно посмотреть, кликнув на нее правой мышкой и выбрав пункт «Свойства»):

    http://site.ru/wp-content/uploads/2009/08/kartinka.jpg

    то сайт работает на WordPress.

    Одним generator’ом, увы, дело не ограничивается. Развивайте тему!

    • Уважаемый Barrister, а я разве в статье не написал, что (цитирую сам себя) — «….Если имеет на это время и заказ — будет возиться….» Вы как раз своим комментом это и доказали — захочет «слепотупой» взломщик сломать мой сайт — он найдет достаточно способов, как это сделать. К сожалению, или к счастью, я не хакер, и у меня на сайте нет сундука с золотыми слитками, а наоборот — лежат в свободном доступе качественные шаблоны Вордпресс, и «ломать» мой сайт может, как вы правильно выразились, только «слепотупой»…. Статья моя как раз и есть начало этой темы, и развивать ее я хочу не только самостоятельно, но и с вашей помощью тоже. Вы отлично рассказали о нескольких дополнительных способах — как определить тип движка, и даже знаете, что у Гудвина он все-таки на Вордпресс :) Отлично. Тогда приглашаю вас к полезному делу — напишите вы свои варанты защиты, уверен — посетители оценят.

Подписаться на комментарии

Напишите ваше имя

Это обязательно

Напишите корректный адрес

Это обязательно

Это обязательно

Перед отправкой формы:
Извините. проверка на спам.

Проголосуйте

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

Просмотреть результаты

Loading ... Loading ...

Обо мне

Я профессионально занимаюсь web-дизайном, а также всем, что связано с веб-строительством:
— Оказываю услуги хостинга
— Занимаюсь продвижением и раскруткой
— Консультирую в области безопасности и защиты сайта
— Пишу много о Wordpress
— Готовлюсь открыть Школу WordPress для новичков и не только
В свободное время стараюсь ничего не делать вообще, или еду на рыбалку, или смотрю футбол по TV

Любые ваши пожертвования

Чтобы перевести сложный и бесплатный шаблон WordPress уходит в среднем 3-4 часа времени.
Чтобы разобраться в некоторых плагинах WordPress (локализация, настройки) — уходит примерно столько же времени.
Свободного времени катастрофически не хватает.
Поэтому было бы здорово, если бы вы поощряли мою работу любыми суммами.
Я открою специальную страницу и обязательно буду создавать список из имен тех, кто окажет свою помощь в дальнейшем развитии моего каталога бесплатных шаблонов и плагинов WordPress.
Мои реквизиты:
WMZ — 199627930654
WMR — 115293196032
WMU — 127367399765
Яндекс — 41001644171231

Best Wordpress © 2012 Все права защищены

Разработка сайтов SkinWP