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

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

Новогодний подарок блоггерам — WordPress 2.3.2

Как всегда я плетусь в самом конце WP-движения, это я о скорости реакции на анонсы релизов)
Уже успели выложить и две разные версии русского вордпресса 2.3.2, который только-только сошёл с конвейера (от Максима и от mywordpress.ru), но, тем не менее, я всё же рискну быть не оригинальным и отписать ещё раз изменения со своими комментариями.
И так, данные взяты из официального анонса.

Улучшена производительность, при обработке постов, перед выводом пользователю.
Надеюсь, я правильно понял, то, что написано в этом тикете.
При выводе поста, да и любой другой страницы, производится множественный вызов функции get_post, через которую работают такие функции как the_title, get_permalink и т.д. Причём, хоть данные полученные от get_posts и кэшируются, но фильтрация/отбор данных происходит после получения уже ВСЕХ данных, а не ДО, что естественно сказывается на производительности. В 2.3.2 это пофиксили.

Улучшена работа функции is_admin(). Теперь нет возможности получить доступ к «Черновикам» администраторов обычному пользователю.
О «дыре» с доступом к черновикам я уже писал, вот теперь это уже и не дыра вовсе.

Ошибки базы данных теперь показываются только при включенном WP_DEBUG.
Ещё одна перестраховка от «шибко-хитрых-хацкеров», чтобы те не могли узнать названия таблиц вашей установки WordPress, при попытках sql-инъекций.

Во время установки WordPress, при нехватке прав у пользователя БД, будет выдаваться ошибка.
А, следовательно, и не будет создан «кривой» config.

Появился шаблон для отображения ошибок при подключении к БД.
Теперь любой пользователь может внести изменения в файл wp-content/db-error.php, который будет показан при невозможности подключиться к БД (например, если превышено количество одновременных подключений).

Добавлена дополнительная проверка при обработке текста, который конвертируется в ссылку.
Тут имеет место быть событие, когда вы вставляете текст с http://, а он автоматически конвертируется в аналогичную ссылку. Повышена производительность за счёт того, что теперь функция преобразования различает обычные ссылки, фтп и почтовые ящики. Стоит отметить, что, судя по всему подобные ссылки (за исключением ящиков) автоматически будут отображаться с rel=»nofollow», во всяком случае, тут всё указывает на это.

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

Запрос пароля к записи будет выдаваться только тем пользователям, у кого есть права на изменение этой конкретной записи. Всё это относится только к сторонним-клиентским программам, работающим через XML-RPC.

Ещё одно изменение в XML-RPC, которое связано с отображением данных о пользователе, при вызове wp.getAuthors.
Данные теперь выводятся в более ограниченном формате, а так же добавлена проверка, что пользователь имеет минимальные права (редактирование постов), чтобы ограничить распространение информации, такой как имя пользователя, его логин и прочее.

И ещё целый ворох проверок в методах XML-RPC и App, для улучшения безопасности.

И совсем маленькое добавления при проверке путей файлов, на win-серверах.


Вот и всё. Вроде бы и не много, но и не мало. Ставить, я думаю, стоит, но… только после того, как голова и руки будут действовать активно и правильно, апосля празднования НГ, а то можно дел наворотить)

И ещё, если тов. Лекактус не против, то я бы попросил его немного подправить текст на mywordpress.ru, а то что-то слишком много орфографических ошибок и местами не понятный текст. Если нужна помощь, то могу предложить свои услуги, но опять-таки — после праздничков.

Многоуважаемые хакеры, вы имеете последнюю возможность взломать этот блог и при помощи перечисленных дыр, потому что я не тороплюсь обновляться)

А мужики то не знают: защита в WordPress 2.4, дыры и апдейт в 2.3 и подсветка синтаксиса

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

Улучшенная система безопасности в WordPress 2.4

Хоть сам движок ещё готов процентов на 30, но уже заявлены приятные нововведения, такие как использование безопасных куки и новый алгоритм шифрования хранимых паролей.
Про протокол безопасных куки (secure cookie protocol) можно прочитать в этом .pdf (116Kb на англ.), если кратко, то новые куки выглядят так:
имя пользователя|время действия|HMAC(имя пользователя|время действия|ключ)
Причём ключ = HMAC(имя пользователя|время действия|секретный ключ), во как!

В новом протоколе реализованы такие фичи, как управление истечением времени на стороне сервера, массовая перепроверка всех кукисов, а так же предложена повышенная конфиденциальность.

Пароли же теперь буду хэшироваться при помощи phpass, который к обычному md5-хэшированию добавляет ещё возможность подсолить («salt» — представляет собой некий набор символов; обычно это символы обоих регистров, цифры и спецсимволы, которые накладываются или склеиваются с самим паролем или с хэш-суммой пароля) и даже растянуть короткий пароль. Всё вместе это значительно увеличивает сложность взлома путём перебора хэшей.

Так же не стоит забывать, что phpass так же будет применяться в Drupal и phpBB, а значит, существует вероятность, что можно будет использовать одни и те же регистрационные данные в пределах сайта для каждого пользователя, причём без дополнительных извращений.

В принципе, код, отвечающий за кукисы и шифрование phpass’ом, уже можно скачать и опробовать, вот только не делайте этого на активном блоге, т.к. таблица пользователей будет безнадёжно испорчена, а уж если вы ещё и бэкап не сделали…


Некоторые активные дыры в WordPress 2.3.x

1. Существует возможности при выполнении определенных действий, получить доступ к Черновикам (Drafts), созданным другими пользователями, в том числе и администратором. Поэтому старайтесь не хранить в черновиках конфиденциальную информацию. Пока что дыра есть в 2.3.1 и скорее всего во всех предыдущих версиях. Ждём-с багфикса с апдейтом.

2. Дыра в плагине Wp-ContactForm, при помощи которой злоумышленник может выполнить инъекцию HTML кода и получить пересылаемые данные. Баг фикса нет, но сам плагин старенький, поэтому советую вам просто поменять его на Cforms II, тем более вы можете скачать русскую версию у Соники.

3. Уязвимость обнаружили ребята из Seo Egghead. Заключается она в возможности внедрять ссылки в старые посты, причём, обычно выглядит это так, как будто и должно быть, только вот PR естественно снизится. Подвержены такому «хаку» все версии с 2.1 по 2.3.1 включительно.
Яйцеголовые ребята советуют произвести поиск по блогу по таким словам, как: mp3, download, adshelper, softicana, casino, viagra и тому подобному (не мне вам рассказывать, чем обычно спамят)))


Обнови пермалинки правильно

У некоторых пользователей после перехода на 2.3.1 появился скверный глюк, а точнее ошибка:
«Warning: Invalid argument supplied for foreach() in /home/wallis3/public_html/wordpress/wp-includes/classes.php on line 92»
Лечится это довольно просто, но и не очевидно одновременно: нужно сперва сбросить пермалинки на те, что установлены по умолчанию (Настройки > Постоянные ссылки > По умолчанию > «Обновить шаблоны ссылок»), после чего можно вернуть свои старые шаблоны и обновить повторно — глюк должен исчезнуть.


Разметка кода на блогхостинге WordPress.com

Возможно, полезность данной заметки сомнительна, потому как у нас большой популярностью WordPress.com (не путать с бесплатной блог-платформой WordPress) не пользуется, куда чаще используют BlogSpot/Blogger или ЖЖшку, но была — не была.
Если вы ведете блог на WordPress.com, то для красивой разметки исходных кодов, у вас есть строенная реализация. Работает это так
[sourcecode language='язык']
строчка код 1
...
строчка код n
[/sourcecode]

, где язык — это на выбор: cpp, csharp, css, delphi, java, jscript, php, python, ruby, sql, vb, xml.
За основу взят SyntaxHighlighter, нашего соотечественника (как я понял) Алекса Горбачева.


Помоги найти трэкбэк

Оказывается, среди тэгов разметки WordPress есть такое чудо, как trackback_rdf, который внедряет на страницу не видимый для пользователя код, применяемый некоторыми программами и поисковыми ботами, для определения адреса трэкбэка. Сам тэг должен размещаться внутри Loop’а и быть скрыт в html-комментарий, чтобы не попадаться на глаза читателю. Выглядит это примерно вот таким образом:


Ну вот на сегодня и всё. До скорого. И берегите себя и свой блог.