[Безопасность] 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’ на что угодно (вам даже не обязательно запоминать эту фразу), например, ‘Спасибо тебе Тарас за наше безопасное детство блоггерство’ «

10 вещей, которые вам стоит знать о WordPress 2.5

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

Тем временем уже отгремели два релиз кандидата WordPress 2.5 и даже «зафиналили» этот чудо блог движок.
Скачать его можно:
а) оригинальную версию с офф. сайта
б) русскую официальную
в) версию от Кактуса, т.н. Lecactus Edition

Сразу скажу, что сам ещё не смотрел и руками не трогал, но почитать успел изрядно про новую версию. Ссылки на русскоязычные статьи по этой теме дам в конце, а пока что предлагаю ознакомиться с интересной заметкой Аарона Бразелла (вы уже могли читать у меня его пост «10 вещей, которые вам стоит знать о WordPress 2.3»), которая продолжает традиции постов «10 вещей, которые вам стоит знать о WordPress …(поставить новую версию))».


10 вещей, которые вам стоит знать о WordPress 2.5

WordPress собираются выпустить версию 2.5 (статья опубликована 18 марта, во время выхода первого релиз кандидата). Если вы пользуетесь услугами WordPress.com или заглядывали на демо сайт, то вы уже, наверное, знаете, что с этим релизом грядут большие изменения.

Кто-то спросит, «А куда подевался WordPress 2.4?» Ответом на вопрос будет — его просто пропустили. Да, всё верно, 120-дневный цикл релизов был нарушен, и теперь мы получим на выходе два релиза в одном. Повторюсь, количество изменений обширно и бесчисленно. Это громадный релиз.

Ну что же, посмотрим что там самого важного?

Новый интерфейс админ панели

WordPress 2.5 Admin Panel Interface

Безусловно, самые большие изменения в этом релизе коснулись переосмысления того, как пользователь WordPress решает свои административные задачи. Студия Happy Cog была нанята для проведения юзабилити тестов и исследований — с акцентом на исследовании юзабилити. Некоторые из нововведений админ панели настолько значительны, что я выделил их отдельными пунктами, потому что они достойны собственного описания и, вновь повторюсь, эти изменения огромны.

Вы сразу же обратите внимание, что админ панель WordPress теперь выполнена в светло-голубых, светло серых и оранжевых тонах. Мне нравится это цветовое решение, но многим, судя по отзывам, не очень. Если вы разработчик или разбираетесь в создании плагинов для WordPress, то вы можете подключить своё собственное css при помощи фильтров wp_admin_css и wp_admin_css_uri, а так же в новый WordPress уже встроены «Классическая» тёмно синяя тема оформление и «Fresh» стиль, который активирован по умолчанию.

Я же остановился на оформлении по умолчанию. Не так уж оно и плохо.

Расположение элементов меню

WordPress 2.5 Menu Layout
Одно из первых, бросающихся в глаза, изменений коснулось навигации по админке. Почему то в памяти всплыл Movable Type. Я понятия не имею, позаимствовали ли идею оттуда или просто глубокие исследования пользователей, проведенные Happy Cog, сказались на результате, но в любом случае… что-то точно сказалось.

В первую очередь, пользователь работает с админ панелью в одной из четырёх областей — написание постов, управление постами, управление комментариями и изменения в элементах оформления. Вы заметите, что эти пункты вынесены в основную навигацию в левой части экрана. (Обратите внимание, что пункт меню «Presentation»/»Внешний вид» был переименован в «Design» — что тоже является юзабилити решением. И это важно.) Мэтт писал об этом более подробно.

Остальные элементы прежнего основного меню — Плагины, Настройки и Пользователи — теперь отнесены к вторичной навигации в правой части экрана.

Под-навигация — немного странная. Так как первичные и новые вторичные элементы навигации являются частью одной и той же панели меню, все «подменю» появляются под первичной навигацией. Всё нормально, когда дело касается пунктов из первичной навигации, но для элементов вторичной навигации смотрится довольно неудобно, учитывая его расположение в противоположной части экрана. Я знаю, что эту проблему сейчас рассматривают, но что получится в результате — мне не известно.

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

Управление виджетами

WordPress 2.5 Widget Handling
Другим МАССИВНЫМ сдвигом в философии стала страница Виджетов. Прежде вы могли перетащить (drag-n-drop) виджет в нужное место. Вы всё ещё можете перетаскивать виджеты в пределах сайдбара, тем не менее, этот релиз WordPress меньше привязан к различным java-script «украшательствам». Каждый виджет представлен в левом столбце, вы кликаете на ссылку «Add» и он переносится в сайдбар. Вместо того, чтобы просматривать все сайдбары сразу, пользователь выбирает сайдбар из выпадающего меню, если хочет перейти к настройке другого сайдбара.

По мне, так это только добавит ещё один пункт к общему списку переучиваний при работе с блогом, так что, в общем, мне не очень это понравилось, но похоже, что так оно надёжнее работает.

Усовершенствованная «Доска объявлений»

WordPress 2.5 DashBoard Overview
Второй вещью, которую вы, скорее всего, заметите сразу после входа в админку (первой была цветовая схема), будет новый интерфейс «Доски объявлений». Теперь она полностью модульная и хотя всё ещё нет «простого» способа добавить свой собственный модуль, всё же авторы плагинов могут создавать виджеты для «Доски объявлений». С такой позиции архитектура выглядит примитивно, но это позволит авторам плагинов добавлять функционал более простым способом и не чувствовать себя «хакерами».

Сводка по всем данным вашего WordPress располагается в виджете с заголовком «Right Now», информирующим вас о количестве постов, комментариев, черновиков, тэгах и категориях. Другие полезные виджеты можно настроить при помощи своих собственных RSS-лент.

Улучшения в визуальном редакторе

WordPress 2.5 Visual Editor Improvements
Визуальный редактор, давшнишяя заноза в заднице многих пользователей, был обновлен до поддержки TinyMCE 3. В него включили даже режим «Во весь экран» (Full Screen), для тех, кто не любит отвлекаться во время написания поста. Я не могу много поведать об остальных особенностях этого обновления, так как не пользуюсь визуальным редактором в WordPress, но мне рассказывали о громадных различиях по сравнению с предыдущей версией. Команда разработчиков TinyMCE совместно работали с командой WordPress над текущим релизом.

Flash загрузка мультимедиа

WordPress 2.5 Flash Uploader
Для тех из вас, кто в постах использует много изображений, стандартный загрузчик был полностью переделан. То есть, вы можете загрузить или вставить сразу несколько изображений за раз, при помощи основанного на Flash загрузчика. Для тех же, у кого не установлен Flash, сохранена возможность воспользоваться старым загрузчиком, т.ч. не стоит волноваться. Так же появилась новая ссылка «Add Media» в заголовке окна написания поста, которая и вызывает загрузчик. Для тех из вас, кто желает подискутировать, над философским решением включить элемент с закрытыми исходными кодами (Flash) в open-source проект и выпуск WordPress под GPL, — вперёд и с песней.

Автообновление плагинов

Ещё одна амбициозная фича, добавленная в WordPress, — новый механизм автообновлений. По умолчанию, он попытается обновить плагины, уже помещенные в репозиторий плагинов WordPress, перезаписав новые файлы поверх существующих. Как бы то ни было, при этом появляется дыра в безопасности, так как получается, что ваши плагины доступны для записи непонятно кому. Альтернативным вариантом можно считать обновление плагинов через FTP/FTP+SSL. Но стоит помнить, что ваши учётные данные и пароль от FTP будут сохранены в базе данных, а также важно не забывать, что FTP — не безопасный протокол. FTP/SSL намного безопаснее, но и у него есть огрехи. Но благодаря существованию хуков для работы с файловой системой, я пишу плагин для работы через Безопасный FTP (FTP через SSH). Пока что он ещё не готов, но надеюсь, что совсем скоро я его выпущу и сообщу вам.

Настраиваемый размер миниатюр

WordPress 2.5 Tumbnails Resize Option
С тех пор как впервые встроили загрузчик изображений, кажется где-то в WordPress 2.0, многие люди жаловались на невозможность модифицировать размер миниатюр. Если не ошибаюсь, то старые настройки были что-то вроде 100×100. В WordPress 2.5, миниатюризация стала намного более удобной. Вы не только можете установить глобальный размер миниатюр, но и также размер для «средних», аля Flickr, и добавилась опция для обрезания слишком больших изображений, вместо того, чтобы просто изменять размер. Думаю, что многим из вас эта функция понравится.

Управление тэгами

WordPress 2.5 Tag Managment
С введением в WordPress 2.3 тэгов, группа разработчиков не сильно торопилась добавлять какие-то элементы интерфейса для управления ими. Минималистическое поле ввода на странице создания поста позволяло просто вводить список тэгов через запятую без дополнительных возможностей манипуляций с ними. К счастью, в 2.5, было добавлено несколько элементов интерфейса, хотя функционал остался тот же. Работает, как и тэги во Flickr, где добавлять тэги можно, перечисляя их через запятую или при помощи мантры «введи, кликни, добавь».

Индикатор надёжности пароля

WordPress 2.5 PassWord Strength
Последняя крупная вещь (и поверьте мне, есть ещё тонна более мелких и неясных вещей) в списке вещей, которые вам стоит знать о WordPress 2.5, это индикатор надёжности пароля. Пароль должен быть минимум три символа или появится сообщение «Слишком короткий», и должен состоять из двух или трёх видов знаков- буквы, цифры или символы — или будет обозначен «Слишком слабым». Безопасность паролей — большая проблема для всех в IT сфере, но безопасность блога может быть улучшена самими блоггерами, подбором «сильных» паролей.

Бонусный пункт: Разумная работа с «Полной датой записи»

WordPress 2.5 TimeStamp Sanity
Благодаря Mark Jaquith (Пояснение: Марк — один из моих служащих в b5media, но также разработчик ядра WordPress), функционал «полной даты записи» (Timestamp) был полностью пересмотрен. По умолчанию новый пост вообще не отображает модуль «Полной даты записи». Вместо этого он немедленно публикуется, или вы можете кликнуть по соответствующей ссылке, если действительно планируете изменить дату публикации. Когда редактируете пост с уже существующей датой (т.е. опубликованный), то вы так же не увидите раздела «Изменить дату», который многие годы вызывал недоумение у пользователей. Если вы редактируете существующую дату, то подразумевается, что вы планируете изменить дату! Другими словами, WP больше не будет оскорблять интелект пользователей (не то чтобы он делал это прежде, но защита блоггера от самого себя немного раздражала).

Если вы планируете потестить, вы всегда можете взять последнюю доступную версию кода с http://svn.automattic.com/wordpress/trunk. Стандартное руководство по работе с не-стабильной версией: Поддержка отсутствует, у вас другой подход, используйте на свой страх и риск, не кормите тигров. Но если вы желаете помочь процессу разработки, то тестируйте И сообщайте о найденных багах. Ещё предстоит много-много чего оттестировать до появления релиза. Наслаждайтесь 🙂


От себя добавлю, что так как обзор делался на основе первого релиз кандидата, то и функции тут указаны не все, например забыта поддержка граватар и галерей, поэтому постараюсь сделать более глубокий обзор нововведений (скорее всего он будет интересен «ковыряющим» движок), а пока что можете полистать «чужие» заметки по теме:
«Как активировать глючащие плагины в WordPress 2.5»
«WordPress 2.5 против WordPress 2.3.x — сравнительный обзор»
Качественно переведенный WordPress 2.5 Lecactus Edition — советую!
Показательный опыт обновления до 2.5 — не всё так безоблачно.

Сам я скорее всего пока повременю с обновлением и посмотрю на работу на тестовом блоге, к тому же думаю 2.5.1 не заставит себя долго ждать.

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 по шагам», думаю, разница будет не слишком большая.

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