Уязвимость WordPress, патчи для 2.8.3 и 2.7.1

Летом вышла версия WordPress 2.8.

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

Ну а совсем недавно была обнаружена уязвимость WordPress, которая заключалась в том, что злоумышленник мог сбросить пароль любого пользователя, сделав некий запрос к скрипту wp-login.php. Любого — значит совсем любого, включая администратора.

Увы, далеко не все поняли, что, хотя уязвимость и назвали «критической», большинству пользователей WordPress это ничем не может повредить. Дело в том, что после сброса пароля новый высылается почтой. Но не злоумышленнику, а соответствующему пользователю. То есть, неприятно, но не смертельно.

Опять же, далеко не все поняли, что речь идет об уязвимости не только WordPress версии 2.8, но и всех предыдущих. Народ у нас, конечно, не любит разбираться в таких тонкостях, но факт остается фактом: если вы не обновились — вы уязвимы.

К счастью, как сообщил один из разработчиков, для устранения уязвимости вовсе не  обязательно качать версию 2.8.4.  По ссылке — патчи для WordPress версий 2.8.3 и 2.7.1.

Спаму — нет

Я уже писал, как нас, вордпрессеров, достают спамерские комментарии.

Конечно, никто не мешает поставить капчу, но я, поскольку и сам их терпеть не могу, обхожусь фильтром Aksimet. Хорошая штука, прекрасно выполняет свои функции но не освобождает от необходимости периодически просматривать отловленные комментарии (мало ли попал легитимный комментарий).

Но на днях обратил внимание, что очень и очень многие комментарии, несмотря на разные реквизиты отправителей (электронный адрес, имя, адрес сайта), приходят с одних и тех же IP.  Что странно, ведь я бы на месте спамеров пользовался прокси или хотя бы динамическими адресами... Но тем не менее.

В общем, составил списочек и занес следующие строчки непосредственно в конфигурационный файл nginx.

deny  81.170.208.83;
deny  195.88.33.144;
deny  89.149.244.89;
deny  212.95.60.227;
deny  89.175.81.38;
deny  203.147.0.44;
deny  114.127.246.36;

Те, у кого нет доступа к серверным конфигурационным файлам, могут вписать то же самое в файл .htaccess, находящийся в корне вашего сайта, только там другой формат:

deny from  81.170.208.83
deny from  195.88.33.144
и так далее.

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

WordPress 2.8.2: где ты, былая легкость?.

Все побежали — и я побежал.

(«Джентельмены удачи»)

Поставил на тестовом сайте обновленный WordPress 2.8.2. Много о нем читал, так что ничего нового формально не узнал, однако лучше один раз увидеть.

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

К счастью, нынешняя конфигурация сервера дает возможность полноценно работать всем сайтам и серверному софту даже при нулевом объеме свободной памяти (хотя я не проверял, долго ли). Радикальное решение отказаться от «Апача» в пользу nginx было правильным.

2. Раньше я уже пробовал установить/настроить 2.8.2, но ограничения в 25 мегабайт на скрипт явно не хватало для нормальной работы. По слухам, 32-х некоторым тоже не хватало. Сейчас у меня стоит 35.

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

Поговаривают, что админка работает в целом шустрее, но я особой разницы не вижу: во-первых, сервер у меня оптимизирован под WordPress, а во-вторых, я использую Google Gears, который хранит локально около 250-ти файлов, необходимых для работы админки. Upd. В новой версии —  166.

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

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

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

Из «ЖЖ» на WordPress или «На волю, всех на волю!»

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

Пока подбирал настройки, много думал о том, почему люди так привязываются к «ЖЖ» и другим подобным сервисам, ведь в случае DDoS-атаки или каких-либо сбоев становятся недоступны для чтения все дневники всех пользователей. Больше того, они становятся недоступны  и для поисковых систем, и для самих авторов.

В случае взлома наверняка злоумышленник сотрет все содержимое дневника, и оно будет в той или иной степени утрачено. А  на том же WordPress  это практически невозможно. То есть, взломать можно, стереть можно. Но полная утрата маловероятна — хотя бы из-за наличия функции автосохранения резервных копий.

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

В случае DDoS-атак или взлома станет недоступен только один блог (а не миллионы). Читать их можно все равно единой лентой — через RSS-агрегаторы (Google Reader, Яндекс.Лента и так далее). А комментировать можно без всяких регистраций, в том числе, благодаря такой вещи как OpenID.

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

WordPress, Missed Schedule и др

Ради эксперимента обновил WordPress до версии 2.8. По традиции, в кактусовой версии.

Вкратце: никакой необходимости в обновлении нет. Новая хренотень с виджетами, насколько я знаю, должна поддерживаться и на уровне тем. Но мои темы этого не поддерживают и менять я их не собираюсь (да, собственно, я и виджеты недолюбливаю: без них легче во всех смыслах).

Утверждают, что админка стала легче работать — это очень даже возможно. Но мне показалось, что после апгрейда на сервере сразу же осталось меньше свободной памяти и к прежнему уровню за прошедшие дни оно так и не вернулось.  Хотя утверждать, что дело именно в новой версии я не буду, но и обновлять остальные сайты тоже не буду. Тем более, что у меня сервер неплохо «заточен» под WordPress и админки и без того просто летают, а потому разницы между «до» и «после» я не заметил.

Между тем, случайно узнал, что с момента переезда на новый сервер перестал работать отложенный постинг (что в 2.8, что в более ранних версиях). Выглядит это так: штуковина, в принципе, работает, ведет обратный отсчет... А в нужное время ни хрена не публикует и пишет в соответствующем поле в админке «Ну не шмогла я, не шмогла» (Missed Schedule).

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

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

Этот пост был опубликован с использованием отложенного постинга.

UPD. После обновления на «окончательный» вариант кактусового 2.8 пришлось откатиться на 2.7.1. Может быть, что-то где-то недообновилось или недокачалось, однако даже админка не работала и отображалась только частично. Нет времени и желания разбираться, но, возможно, следовало залезть в настройки сервера и увеличить лимит памяти для скриптов — а оно мне надо?

UPD2. Ага. Вот тут в комментариях тоже пишут, что 2.8 памяти стал кушать больше. Зато, якобы, быстрее. Извините: я лучше серверную и клиентскую часть оптимизирую.  Вернее, уже.

UPD3. Пишут, что скоро выйдет 2.8.1, менее прожорливый до памяти.