[Безопасность] WordPress 2.5 — Уязвимость “Секретного ключа”

Звиняйте, пишу редко, ибо с головой ушёл в офф-лайн: йога, диплом, работа.

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

И так, начнём с простого вопроса — многие ли из вас, читатели, знают, что такое SECRET_KEY в новой версии движка?

Небольшой экскурс в кодекс или читайте мою интерпретацию)

В общем, многие знают, ну или подозревают, что до того, как попасть в базу данных пароль, вводимый пользователем, подвергается md5-преобразованию. Это делается для того, чтобы даже если злоумышленник получит список паролей, реальных паролей на руках у него не было. Проблема в том, что обычно пользователи указывают простые пароли вроде qwerty и прочих pass12345 у которых ВСЕГДА один и тот же md5-хэш. И введя в тот же гугл полученную из БД строку «зашифрованного» пароля, мы получим на выходе оригинал пароля. Так же существуют онлайн сервисы и оффлайн утилиты, которые просто генерят словари всех возможных слов с их md5-строками (получается некий брут-форс).

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

Они решили добавить некий случайный элемент в генерацию хэша, который бы не позволил «угадывать» пароль по его md5, не зная этого элемента. Как вы поняли речь тут и идёт о SECRET_KEY, только проблема, на текущий момент такова, что о его существовании знают почти что только избранные (теперь и вы себя к ним можете причислить)).

WordPress 2.5 не предлагает сменить этот ключ при установке и использует всё время прописанный в wp-config.php по-умолчанию:
define(‘SECRET_KEY’, ‘put your unique phrase here’);
Так как 90% пользователей вордпресс создают wp-config.php через меню браузера, прописывая нужные параметры при установке, то получаем у 90% блогов один и тот же «случайный элемент».

Тов. J. Carlos Nieto, поднатужившись, написал огромное изыскание, где можно даже найти код программы для перебора паролей и местами это вообще похоже на hack-manual ]:->

Так что, уважаемые читатели, мораль сей басни такова:
«Если вы устанавливаете новую версию или апгрейдите старую до WordPress 2.5, то потрудитесь залезть в wp-config.php и исправить ‘put your unique phrase here’ на что угодно (вам даже не обязательно запоминать эту фразу), например, ‘Спасибо тебе Тарас за наше безопасное детство блоггерство’ «

WordPress 2.5 откладывается, а мы готовимся!

Хоть нам и обещали подарить релиз WordPress 2.5 к 10 марта, но судя по прогрессу (на сегодня 59%) что-то у них не успевается к сроку.

Марк Гош на Weblog Tools Collection обещает, что к 17 числу этого марта всё будет «в лучшем виде», но, глядя на эти 59%, я как-то сомневаюсь немного. Поживём — увидим, как говорится.

Миколка перевёл статью, где сравнивают текущую версию (2.3.3) с грядущим релизом. Статья так и называется «WordPress 2.5 vs WordPress 2.3.x», почитайте, там много иллюстраций и неоднозначных выводов.

Но хоть 2.5 ещё и нет, но подготовиться к нему следует. Вот что советует Лоррель на БлогГеральд (т.н. Upgrade Preparation Checklist):

  1. Проверьте совместимость: Посетите WordPress Кодекс и изучите совместимость своей темы и совместимость плагинов. Если какие-то плагины не попали в список, лучше всего посетите страничку их разработчика, в поисках новой версии.
    Вообще, конечно, если тему вы брали не стандартную или делали её сами, то найти её в списке будет проблематично. Может быть, в скором времени выложу список изменений в тегах разметки тем.
  2. Обновите тему и плагины: На странице кодекса «Переход с 2.3 на 2.5» даны некоторые советы, которые помогут при обновлении плагинов и тем.
  3. Проведите дозапусковое тестирование: В этом вам поможет плагин WordPress Upgrade Preflight Check , который определит готовность вашего блога к работе с последней версией WordPress. Особенно хорошо проверится этим плагином тем, кто планирует проводить апгрейд с ранних версий движка.
    Пока что по ссылке доступна только версия, проверяющая совместимость с WordPress 2.3.3, но автор уверяет, что сразу после релиза 2.5 (или почти сразу) будет доступна соответствующая версия. Так что заходим проверяем.
  4. Отключите и/или удалите старые плагины: Пробегите по списку плагинов и деактивируйте и удалите с сервера все плагины, которые вы не используете, но которые висят в списке. Если плагин используется, то не забудьте обновить его.
  5. Распечатайте список своих плагинов: Перейдите на страницу управления плагинами в админ-панели и распечатайте список всех плагинов. Отметьте те из них, без которых работа вашего блога будет не возможно. Если вдруг что-то пойдёт не так, то вы, во всяком случае, сможете восстановить плагины, найдя их по названиям из списка. (Вообще всё должно пройти отлично)
  6. Валидация: Если вы сами настраивали свою тему, то самое время прогнать её через серию валидаторов, дабы удостовериться, что с ней всё в порядке. Изучите страницу «Валидация веб-сайтов» в Кодексе. Раз уж вы взялись за это дело, то почему бы не пройти чеклист «Разработка веб-сайта шаг-за-шагом».
  7. Резервная копия: Сделайте резервную копию базы данных, файлов темы, папки с плагинами. Забэкапьте вообще всё. И на всякий случай сделайте даже xml-экспорт всех записей из блога.
  8. Расслабьтесь и почитайте: Выделите время на чтение WordPress документации по установке и апгрейду, а не бросайтесь за обновление в торопях. Полезно изучить:

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

  9. Проверьте форум поддержки WordPress: Если вдруг что-то пошло не так или у вас не получается корректно обновиться, то поищите ответы на офф.форуме или создайте там соответствующий топик.
    Для русскоговорящих могу посоветовать два форума: форум поддержки Максима и форум поддержки от myWordpress.ru. Ну или можете попробовать обратится напрямую ко мне, многим уже помог:)

И небольшой список англоязычных чеклистов, для различных проверок:

Если же у вас несколько блогов, то возможно будет полезным изучить:

От себя хочу добавить, что не надо бояться апгрейда. Для самых робких советую подождать не 2.5, а хотя бы 2.5.1, когда уже обычные пользователи отловят глюки/баги, а так же на всякий случай прочтите «Как безопасно обновиться до WordPress 2.3 по шагам», думаю, разница будет не слишком большая.

И ещё, если какую-то из ссылок в статье, ведущую на англоязычный ресурс, очень хочется увидеть в переводе — пишите, может ваше желание совпадёт с моей возможностью)

Не работающий nofollow и как бороться со спам-линками в WordPress

Для кого как, но для меня было открытием, что rel=»nofollow», указанное в ссылке, не работает, так как должна. А точнее вес со страницы и бот не идут по ссылке, но вот ключевые слова из ссылки всё равно учитываются при ранжировании.

Товарищь Donncha в качестве примера-доказательства приводит следующее:
кто-то проспамил его блог комментом, где в качестве имени стояло Shih Tzu Checks (ши-тцу — это порода собак такая), а ссылка вела на страничку. И что самое интересное, при поиске по данному ключевику, страница висит в топ10, при том, что в гугле на нее нет ни одного директ линка.

Вот такие вот дела.

Но Donncha не унывает и даёт советы по борьбе с подобными спаммерами:
1. Применять плагин Comment Referrer, который добавляет в письмо для аппрува комментария ссылку, по которой к вам пришёл человек или бот.
comment referrers screenshot
На картинке чётко видно, что страничку искали по слову «Leave a reply», т.е. с целью «оставить коммент». Такое сразу можно в спам отправлять.

2. Установить плагин Delink Comment Author, при помощи которого можно выборочно удалять ссылки с имени автора, для чего рядом с комментом и в админ панели появляются соответствующие ссылки.

3. Использовать плагин Lucia’s Linky Love, позволяющий установить минимальное количество комментариев, необходимое, чтобы ссылка от автора была разрешена к отображению.
Lucia’s Linky Love Admin Panel Screenshot

От себя могу добавить, что есть ещё несколько альтернатив этим плагинам, например:

  • NoFollow Free (русская версия и описание)
  • Comment URL Control — похоже, что тоже самое, что и Delink Comment Author.
  • Nofollow Case by Case — убирает Nofollow со всех комментариев, до тех пор, пока вы в ручную не допишете в конкретный урл dontfollow. Имхо не слишком удобно, но возможно есть и некая автоматизация сего процесса.
  • WP-Ban — банит посетителей по IP, указываемому хосту, а так же рефереру. Позволяет настроить сообщение, выдаваемое забаненному посетителю.
  • Simple Trackback Validation — проверяет трекбэки: сравнивая IP-адрес отправителя трекбэка и сайта, на который ссылается трекбэк, а так проверяет страницу, с которой пришёл трекбэк, на наличие беклинка.

Если вам известны какие-либо ещё способы борьбы со спамом — поделитесь ими в комментариях, а я тогда обновлю пост, если информация будет полезна.

Удачи и поменьше спама и «левых» трекбэков.

Как сделать тему WordPress виджет совместимой за 3 шага

В комментариях к последней статье «Виджеты — это очень просто!» попросили рассказать, как же сделать тему виджет совместимой. Честно говоря, я думал, что на офф.сайте это описано, а как выяснилось написано то оно написано, да не совсем там.

В общем, отрыл я пошаговое описание того, как нужно «грамотно» виджетизировать свою тему, которое ниже предлагаю вам в своём переводе с небольшими корректировками и дополнениями.


Шаг 1. Редактируем functions.php

Сперва необходимо удостоверится в том, что в папке с вашей темой находится файл function.php, а если таковой отсутствует, то создайте его сами.
Следующим шагом нам необходимо определиться — как у нас формируется сайдбар. Откройте свой sidebar.php и попытайтесь вникнуть в код и понять, что используется для формирования сайдбара — списки (<ul>) или дивы (<div>).
Например, у Артема сайдбар стандартный, из списков и заголовков второго уровня, что видно по коду:

А вот у Максима напротив, сайдбар состоит из последовательных блоков div, обрамленных изображениями «скругленных углов», а уже внутри дива находится контент виджета. Кусок кода, чтобы было (возможно) проще понять, о чём я говорю:

Так вот — первый вариант, как я уже и писал, можно обозвать стандартным или скорее классическим, а следовательно и встраивание в сайдбар по «классической схеме» будет проходить максимально безболезненно.

Достаточно в functions.php добавить блок кода, чтобы в итоге получить сайдбар на основе списков с заголовками 2 уровня:

Если файл functions.php вы не создавали с нуля, то советую сперва просмотреть его на наличие указанного выше кода, чтобы не получилось дублирования.

Если же, вы используете, какой-то более извращенный метод (ничего личного, Макс:-)), то код может принять устрашающий вид, аля:

Дам небольшие пояснения, строка, передаваемая в параметр ‘before_widget’ будет выводится как начало любого виджета, а ‘after_widget’ — конец. Т.е. тут мы задаём тэги обрамления виджета. ‘before_title’ и ‘after_title’ соответственно определяют обрамление заголовка виджета (это все те «Рубрики» и «Самое читаемое»). В итоге мы получим дивный сайдбар с заголовками 4 уровня.

Для особо замороченных существует возможность получить при выводе виджета его id (генерится из имени виджета) и класс (получается в процессе обработки виджета). Т.к. ‘before_widget’ пропускается через sprintf, то в любое место строки можно передать %1$s и %2$s, чтобы при выводе получить соответствующие параметры. Надеюсь «замороченные» поняли, о чём я.

Шаг 2. Проверяем сайдбар и добавляем на него виджеты

Чтобы понять работает наш сайдбар или нет, нужно добавить на него несколько виджетов.
Идём в админ панель, далее «Внешний вид > Виджеты» и лицезреем (или нет, если забыли сохранить и/или загрузить functions.php в свою тему) панель сайдбара, куда можно (и даже нужно) натаскать пару-тройку виджетов. И главное нажать «Сохранить», после чего перейти к третьему шагу.

Шаг 3. Добавление сайдбара в шаблон

Ну и наконец-то то, ради чего всё делалось — подключение сайдбара в шаблон.
Тут есть простой и очень простой способ. Оба заключаются в редактировании файла sidebar.php вашей темы.
Простой способ:
Вставить сразу после строки <div id=»sidebar»> следущий код

а перед последним </div> код — <?php endif; ?>
Очень простой способ заключается в том, чтобы понять для себя раз и навсегда, что никто уже не использует шаблоны без виджетов и, стерев предварительно ВЕСЬ код из sidebar.php, скопипастить туда:

Чем меньше кода в подключаемом файле, тем быстрее у нас всё работает (хотя на таком уровне это конечно «мёртвому припарки», но всё же).

Теперь заходим в свой блог и наблюдаем работающие виджеты.


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

И ещё, я думаю — писать пост про создание темы с несколькими виджетами или нет? Пригодится тебе такая статья, читатель, или нет?

10 важных фактов о раскрутке блога

Перевод поста 10 Important Facts of Blog Promotion.


Наверное, каждый блоггер желает, чтобы его блог и количество читателей росло. К сожалению, большинство новых блоггеров мало знают о раскрутке, когда заводят свой первый блог. Хорошая новость состоит в том, что они достаточно быстро во всё вникнут, если будут целеустремленно работать по продвижению блога. Вот список из десяти вещей, которые я заучил для себя за время своей блоггерской практики.

1. На получение существенного трафика с поисковых систем требуется время.

Обычно новому блогу требуется минимум несколько месяцев для того, чтобы стать достаточно «трастовым» для ПС и получать с них более-менее существенный трафик. Если вы планируете в будущем получать основной приток посетителей с поисковых систем, то хорошим советом будет так же сфокусироваться и на других источниках трафика, особенно на начальном этапе.

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

2. Не весь трафик одинаково полезен.

Источники трафика редко бывают хоть сколько-то похожи. У меня хороший процент посещений блога из соц.сетей, и я могу с уверенностью заявить, что трафик с соц.сетей в большинстве своём хуже в плане «возврата читателей», чем из других источников. Если обращать внимание только на статистику, не озабочиваясь истинным положением дел, то можно погрузится в иллюзорный мир. Да, несомненно, посетители это классно, но что если они уходят с блога через 30 секунд и никогда уже не возвращаются?

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

3.Ключ к успеху — регулярный постинг.

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

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

4. Стабильный трафик почти невозможен.

Хотя я и писал, что для поддержания трафика на определенном уровне необходимы регулярные обновления в блоге, но это не значит, что у посещаемости не будет перепадов. У каждого блога бывают взлёт и падения и редко, когда два дня идентичны. Таков естественный ход вещей, так что тут остаётся только смириться или постоянно ощущать дискомфорт, при снижении кривых на графиках. Радуйтесь, когда статистика растёт, а в момент упадков просто продолжайте писать, не обращая на статистику излишнего внимания. Блоггинг был бы довольно скучным, если бы не подобные флуктуации трафика.

5. Постоянные посетители — вот ваша цель.

Да, приятно наблюдать большие цифры в графе «уникальные посетители вашего блога», но, сколько из них вернутся повторно? Постоянные посетители — основа любого блога. Шанс того, что, однажды подписавшись по rss или email, человек снова вернётся на блог, довольно велик, поэтому сфокусировать своё внимание на подписчиках — очень здравая мысль.

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

6. Разная польза от ссылок.

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

7. Важно соблюдать баланс.

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

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

8. Не стоит игнорировать даже самые маленькие источники трафика.

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

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

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

9. Налаживание связей — критично.

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

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

10. Трафик на блог можно купить за относительно небольшие деньги.

Если вы заинтересованы в получении дополнительной раскрутки или желаете, чтобы блог рос быстрее, есть множество вариантов рекламного привлечения трафика на блог. PPC реклама может быть очень эффективна и не дорога (всё зависит от слова и фразы, по которой вы собираетесь получать посетителей). Реклама с StumbleUpon — один из вариантов. Вы можете купить их трафик примерно по $0.05 за посетителя. Даже размещение баннеров на других блогах может обойтись вам относительно дёшево. Подержите ракламу месяц или больше и попробуйте посчитать цену за клик, которая, скорее всего, будет довольно маленькой.