Новогодний подарок блоггерам — 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-комментарий, чтобы не попадаться на глаза читателю. Выглядит это примерно вот таким образом:


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

RealLife и внезапные родственники с одноклассников

Ох-хохоюшки-хохо, очень-очень меня удивляет то, что люди всё ещё не отписались от блога, учитывая перерыв в постах. Сейчас буду оправдываться:-)
Свалилась на меня нежданно-негаданно курсовая по телекоммуникациям, ну точнее не свалилась, а выяснилось, что срок сдачи её сократили на 2 недели и вместо месяца у меня в два раза меньше времени осталось. Надо ли говорить, что до того момента количество страниц в курсовой.doc равнялось 1 — титульной странице с темой.
Вот теперь сижу днями и ночами, пишу на тему «Модернизации телекоммуникационной сети транспортного предприятия», а учитывая то, что я больше программист, чем сетевик, то даётся это со скрипом и большой ленью. Но процесс движется и в эту субботу буду её защищать, а следовательно и вернусь к регулярному написанию постов, благо материала накопилось ого-го.

А теперь хотелось бы сообщить о радостном для меня известии: Благодаря сайту одноклассники.ру был найден мой старший сводный брат, которого я никогда в жизни не видел, а лишь знал о его существовании.
Вот так вот в жизни и бывает, хотя у меня больше складывается ощущение о каком-то индийском фильме с танцами и песнями в конце, где чтобы доказать родство нужно сравнить родимые пятна на затылке. Но факт остаётся фактом — +1 родственник (которых не так много у меня), тем более брат. Вот и ещё одно преимущество экзотических фамилий — нас Тарашевских по пальцам пересчитать можно.
В общем, в скором времени ожидайте возобновления полезных материалов в блоге. Уже не долго осталось.