После моего последнего поста в данном блоге про маркетинговую стратагему хвастовства некоторые подписчики моей рассылки накатали мне обузы, типа: «Свят, ну че за хня! То ты про безопасность в интернет-бизнесе вещаешь, то, вдруг, лезешь в чужой огород и начинаешь не по теме базарить!»
И сколько я ни убеждал, типа: «Ребята, ну нельзя же циклиться только на интернет-пиратах и взломе серверов», моя аудитория была непреклонна. Ну что же, Вы хотите песен…
Возвращаясь же к web-самообороне, поговорить сегодня я хочу не о глобальных проблемах интернет-хакинга, а о вполне определенной, конкретной проблеме: небезопасности блога WordPress!
Мне уже не раз задавали вопросы по поводу моего блога, типа, правда ли это WordPress, али LastoBlog хитро замаскированный? А если это WordPress, то почему именно он?
Итак, блог, который Вы сейчас читаете – это WordPress в последней версии, а также примерно 10 навесных плагинов также в соответствии с последними обновлениями последних.
Что же касается вопроса: «Почему ОН?», то для начала предлагаю рассмотреть данный блог детально!
У скриптов типа WordPress (в смысле бесплатных, коммерческого уровня, с открытым исходным кодом) существует один большой недостаток: они чаще всего оказываются взломанными!
Действительно, с точки зрения хакера какой скрипт наиболее привлекателен для взлома? – Популярный, бесплатный и открытый для изучения…
Посему, у владельца собственного сайта есть определенная дилемма: с одной стороны WordPress является очень привлекательным решением и с позиции «дешево и сердито», так как при своей бесплатности по качеству и функционалу превосходит многие платные скрипты блогов. Кроме того, WordPress дает возможность подключения дополнительных «навесных» плагинов, что позволяет превратить обычный WP во что угодно вплоть до и-шопа. С другой стороны, в сети существуют целые хакерские сайты, посвященные взлому популярных скриптов интернет магазинов, CMS, форумов и блогов, в том числе, естественно, и WordPress.
Анализируя практику взлома данного движка, можно выделить самые частые тому причины:
1. Пренебрежение к оперативному обновлению. Если подумать, что заставляет разработчиков популярных скриптов продолжать постоянную доработку и апгрейд итак признанно популярных скриптов? Ответ элементарен: постоянный поиск и обнаружение хакерами уязвимостей в этих скриптах!
2. Неправильно настроенный сервер. Вы будете удивлены, но зачастую хозяин web-проекта сам дает в руки хакеру всю необходимую информацию для взлома WP.
Например, очень часто для того, чтобы узнать какие навесные плагины подключены к Вордпресс (а значит определить самый дырявый плагин и с его помощью осуществить дефейс блога), достаточно к url-адресу ВП добавить окончание: wp-content/plugins/. То есть, для моего блога это выглядело бы: http://www.svjatmaslov.ru/wp-content/plugins/.
Как видите, мой сайт выдает 403 ошибку, а вот большинство WP выдают полный листинг установленных плагинов.
Латается данная брешь элементарно: в корневой папке Вашего сайта (чаще всего на сервере она носит имя Public_html или www) создаете файл .htaccess (если таковой уже есть, открываете его для редактирования) и пишете в этом файле первой строкой:
Options –Indexes
Все! Теперь Ваш сайт будет надежно отражать нездоровый интерес к его файловой системе.
3. Банальная невнимательность и пофигизм при установке и работе с WordPress.
К сожалению, самой большой ошибкой создателей WP являлась мысль: «Чем проще, тем лучше!»
Те, кто хоть раз устанавливал на свой сайт WP, знают о чем идет речь…
После закачки всех файлов на сервер, достаточно обратиться браузером к папке с Вашим WP, как появляется приветствие и маленькая форма для внесения оперативных настроек (оперативных – значит самых основных, без которых работа скрипта просто немыслима). После заполнения нескольких простых полей блог пишет: «Поздравляем! Настройка скрипта окончена!», однако (во всяком случае, очень хочется на это надеяться), разработчиками предполагается, что юзер перед тем, как обратиться браузером к своему блогу, на сервере открыл для редактирования файл wp-config.php, и ручками отредактировал следующие поля:
define('AUTH_KEY', 'izmenite eto na unikalnuyu frazu');
define('SECURE_AUTH_KEY', 'izmenite eto na unikalnuyu frazu');
define('LOGGED_IN_KEY', 'izmenite eto na unikalnuyu frazu');
define('NONCE_KEY', 'izmenite eto na unikalnuyu frazu');
Что это за поля? Будете смеяться – это ключи для шифрования всех паролей пользователей и админов в Вашем WP.
Так как зачастую пароли, которые используют при регистрации, очень просты и легки на предмет их определения, начиная с версии 2.5 разработчики Вордпресса добавили новую функцию по шифрованию этих паролей с использованием ключей. Однако, к сожалению, очень мало кто читает мануал перед тем, как залить все файлы ВП на сервер и увидеть простую и банальную надпись: «Все вордпресс полностью настроен и готов!»
Как результат, зная значения этих полей у 90% невнимательных блогеров, можно как и раньше с легкостью вычислить несложный пароль и получить доступ к Вашей Вордпрессовской админке.
4. Установка всех мыслимых и немыслимых плагинов для WP. Данный пункт логично вытекает из предшествующего.
Любой плагин – это санкционированная Вами иньекция кода в основной скрипт движка. Соответственно, даже самый маленький плагин имеет доступ ко всем ресурсам скрипта. Догадываетесь, что из этого следует?
Получается, что, зачастую, хакеру проще всего написать маленький плагин, например, для супер-пупер SEO оптимизации и ждать того светлого момента, когда Ваш сайт с установленным хакерским плагином отрапортует ему на e-mail о том, где он стоит…
Но даже если плагин и не содержит “черного” кода, он должен быть написан таким же профи, как автор основного движка. Начинающие кодеры очень любят писать плагины на профессиональные движковые скрипты, а, как известно, плохо написанный скрипт дилетантом иногда способен даже на большее, чем профессионально написанный хакером.
Отсюда простой вывод: скачивайте и устанавливайте только хорошо проверенные скрипты плагинов, которыми пользуются многие опытные блоггеры, авторы которых также имеют хорошие отзывы и не были пойманы на крысятничестве. А главное, попробуйте ограничить все «нужные плагины» всего десятью, как это делаю я.
Напоследок предлагаю Вам несколько нужных плагинов для безопасности WordPress:
1. Replace WP-Version (http://wordpress.org/extend/plugins/replace-wp-version/)
Данный плагин очень прост, но выполняет Важную функцию сокрытия версии используемого Вами WP. Если Вы не обновляете оперативно версию WordPress сразу после Выхода обновления, данный плагин не даст злоумышленнику воспользоваться уязвимостью версии скрипта.
2. Anti-XSS attack (http://mywordpress.ru/plugins/anti-xss-attack/)
Данный плагин защищает административную часть WP от xss-атак. Данный плагин не навешивает дополнительной парольной защиты на скрипт, а контролирует $_GET и $_POST запросы к админке.
3. WP Security Scan (http://wordpress.org/extend/plugins/wp-security-scan/)
Плагин проверяет уровень безопасности скрипта WP, выявляя слабые места и рапортуя Вам об этом!
4. SI CAPTCHA for WP (http://wordpress.org/extend/plugins/si-captcha-for-wordpress/) (русская версия)
Мне представляется, что это один из самых качественных плагинов симейства «капча». Именно эта капча стоит на данном сайте.
5. DCaptcha (http://dimoning.ru/dimoningru-captcha.html)
Данный плагин является очень эффектным дополнением к классической капче, поскольку рано или поздно хакеры находят способ сломать (считывать символы с картинки) большинство «капч», а вот ставить банальную галочку «Я не робот!» спам-боты явно не умеют!
6. WordPress Database Backup 2.2.2. Русская версия (http://lecactus.ru/2007/09/09/658/)
Данный плагин умеет делать бэкап базы данных вручную и по расписанию, отправляя файлы по электронной почте через заданные промежутки времени. Очень необходимо, если у Вас большая посещаемость и плохая нагрузоустойчивость блога.
Мой блог находят по следующим фразам:
- The file .htaccess does not exist in wp-admin
- пароль wp-admin
- заменить заголовок блога в WP
- php код по какому поисковому запросу
- The file .htaccess does not exist in wp-admin/.
- http://svjatmaslov.ru/
Мой блог находят по следующим фразам:
- Свят Маслов
- Your table prefix should not be wp_
- права для пользователей wp
- как избавиться от хвастовства
- фидбернер в Опера
- как правильно настроить WP File Cache
Popularity: 100% [?]

Большое спасибо, Святослав, за ценную информацию!
У меня сейчас блог на движке от Вадима Ласто. Там все надежно и функционально. Но с дизайном не разгуляешься (или я просто не умею
)
Но я еще хочу сделать блог на WP. И сравнить потом, что для меня будет удобнее. Много слышала о всяких плагинах для WP, но информация об этом попадалась кусками и как-то несерьезно. Вы здорово все разложили по полочкам. Спасибо.
Свят, спасибо за информативную статью.
Сделаешь про друпал такую же?
Айнур, я, к сожалению, не знаю этот движок, однако, если твою инициативу многие поддержат, то почему бы и нет: изучу и сделаю!
Привет! Очень хорошая и очень полезная статья!!!
хакеры сейчас маскируются под добродеятелей развая свои чудотворные плагины и потом идут развлекаться.
А небрежность и не аккуратность у некоторых не специальная, а просто они не знают где и чо надо менять, а свой сайт хочется!
Я так думаю, что хакеры научатся писать проги и считывающие галочки “я не робот”, раньше не могли капчу считать, а шас без проблем. Время идёт всё меняется…
Максим писал: Я так думаю, что хакеры научатся писать проги и считывающие галочки “я не робот”, раньше не могли капчу считать, а шас без проблем. Время идёт всё меняется…
Ну, во-первых галочку нужно не считать, а отправить, что не одно и то же, а во-вторых, преимущество тандема двух разнофункциональных капч в том, что если боты со спамом прорвутся, Вы можете оставить капчу “я – не робот!” и поставить другую капчу с картинкой, в результате придется писать новый алгоритм, который будет обходить уже новую пару капч.
Так как спамерские программы обычно перебирают алгоритмы для обхода капчи, стоит сделать так, чтобы подходящего алгоритма не нашлось, и блог (во всяком случае, пока нужный алгоритм спамер не создаст ручками) окажется невзламываем…
Первый раз вижу такую внятную статью про этот блог. И убедилась, что правильно сделала выбор недавно. Я открыла свой блог два месяца назад, и тоже нужно было решить на чем. Мне было не важно, бесплатный или нет. 15 долларов за хороший движок блога – это не цена. Но я выбрала именно блог Ласто, потому что мне не нравится, когда так много всего наворочено, надо во всем этом разбираться, где плохое, где хорошее.
Соображения безопасности тоже я принимала во внимание. А еще такой момент – блог Ласто отлично заточен под поиск, и творит сам такие легальные дорвейчики, которые очень нравятся Яндексу. Ну, спамится, так спамиться на блоге Святослава, дам ссылку на пост, где я пишу об этом http://moneymaker-blog.biz/post_1243792535.html
А что касается дизайна, то есть человек, который делает дизайны для скриптов Ласто. Можно и самим много менять. Например, в Нане я разобралась, и подогнала под себя дизайн. Да и не так это важно, было бы содержание.
Свят, привет!
Установил файл .htaccess в корневую директорию сайта. Однако, плагин WP Security Scan пишет следующее:
“The file .htaccess does not exist in wp-admin/”. Это что нужно такой же файл .htaccess засунуть в папку wp-admin? Или содержание должно быть другим?
И еще. Что означает:
1. “admin” user exists.
2. Your table prefix should not be wp_. Click here to change it.
И как это исправить?
Привет, Ринат!
Рад вопросику по сабжу!
Ринат писал: Установил файл .htaccess в корневую директорию сайта. Однако, плагин WP Security Scan пишет следующее:
“The file .htaccess does not exist in wp-admin/”. Это что нужно такой же файл .htaccess засунуть в папку wp-admin? Или содержание должно быть другим?
Не, у тебя все верно сделано!
Просто плагин настроен на проверку хтаксесса в wp-admin, однако .htaccess имеет функцию передаточного наследования дирректив во все вложенные папки, короче, можно было засунуть по хтаксессу в каждую папку скрипта (wp-admin, wp-content и т.д.), однако мы сделали проще и правильнее, засунув этот файл в корень.
Вообще, нормальный хостер должен эту диррективу на уровне всего хостинга по умолканию ставить
Ринат писал: И еще. Что означает:
1. “admin” user exists.
2. Your table prefix should not be wp_. Click here to change it.
“admin” user exists означает, что как по умолку при установке блога был создан профиль пользователя admin со случайным паролем, так этот профиль и остался. С точки зрения безопасности это небезопасно, так как такой логин общеизвестен, а значит весь вопрос при взломе – подобрать пароль, хотя, если у тебя стоит достаточно сложный пассворд и раз в месяц ты этот пассворд меняешь, то ничего страшного!
Вообще, в идеале, нужно создать в блоге альтернативный профиль пользователя, а профиль admin удалить!
Your table prefix should not be wp_. же означает, что при установке блога в wp-config.php ты не изменил префикс (начальную приставку к названиям) таблиц и у тебя на сайте все названия таблиц в базе данных блога начинаются с “wp_”, что в случае взлома MySQL даст возможность получить доступ к информации.
Click here to change it. есть предложение одним нажатием исправить префикс всех таблиц блога в MySQL и устранить данную угрозу.
Во всем остальном плагин оценил твой блог как соответствующий всем необходимым требованиям безопасности, поздравляю!
В принципе, чтобы надпись Your table prefix should not be wp_. не маячила, можно пока деактивировать данный плагин, а снова активировать, если будешь менять какие-нибудь настройки или ставить новые плагины. С другой стороны, конечно, пока он включен, ты узнаешь о любых дырах в безопасности сразу же как они появятся…
Свят… Решил вернуться к твоей статье после опытов с вордпресс.
Я для защиты от спама нашел прекрасное решение:
http://www.hybrid6.com/webgeek/plugins/wp-spamfree
Теперь у меня на сайте весь спам блокируется, при этом отсутствуют всякие раздражающие пользователя каптчи и кнопки “Я не робот”.
Что касается перечня обязательных плагинов, то считаю, что сюда нужно добавить плагин для кэширования (это значительно ускоряет работу). Я использую вот это решение:
http://blog.sjinks.pro/wordpress-plugins/wp-file-cache/
Не знаю если блог – то без wp тут некуда…
Ух, изменила файлик wp-config.php, сменила пароль на фтп и как-то легче стало.
В остальных вышеописанных пунктах вроде бы порядок.
Сам сайты делаю на DRUPAL-е.
Собираюсь тоже перейти на WordPress.
Интересный блог!