Самый изящный PHP-shell из попадавшихся мне в последнее время

Что-то мне в последнее время везёт на инфицированные сайты (наверное, помните про вирус в .htaccess). Вот и ещё один клиент пришёл в наше агентство взломанным. Его похоже бахнули через подбор FTP-пароля (он у него лишь из цифр состоял), но, кстати, и этот взломанный сайт тоже крутился (и пока крутится) под управлением Joomla 🙂 В общем, в подарок клиенту закинули один из самых лаконичных PHP-шеллов, который только можно себе представить. Не удержусь от того, чтобы процитировать «зловредный» код… Немного знающие PHP далее оценят лаконичность злого гения…

Резервное копирование сайта с удалённого сервера по FTP, включая автоматическое создание дампа базы данных

Дано: есть у вас сайт на удалённом сервере, доступ к которому предоставлен только по FTP (это к файлам, а к базе данных вам дали логин/пароль и ссылку на phpMyAdmin). Планировщик cron на удалённом сервере вам использовать тоже нельзя (и к нему нет доступа). Задача: организовать регулярное резервное копирования файлов и базы данных на ваш компьютер или сервер.

Проблемы бы не существовало, если б копировать надо было только файлы. Но нам как-то надо регулярно получать и дампы базы. Это притом, что удалённых команд через SSH мы на сервере с сайтом выполнять не можем.

Я сначала опешил, но решение родилось вполне тривиальное — дампить базу PHP-скриптом, который будет запускаться нашим скриптом резервного копирования с нашего сервера перед сливом файлов. Далее представлено работающее решение задачи, состоящее из двух скриптов…

Злой вирус в .htaccess перенаправлял посетителей с поисковиков на посторонние рекламные сайты

Простите за заголовок в стиле жёлтой прессы и канала «НТВ», но сегодня наша команда столкнулся с интересной проблемой: при переходах по объявлениям Яндекс.Директа у одного из наших клиентов наблюдалась странная ситуация — пользователь при клике по объявлению в итоге попадал не на целевой сайт, а на одну из мутных площадок, где предлагают оставить на память злым ботам свой номер телефона (и потом разориться на платных sms). При заходе на целевой сайт путём ввода домена «руками» или по ссылкам на сайт из почты, скайпа, закладок — всё было ок.

Природа площадок сразу же намекнула на то, что виной всему происходящему — некий вирус (а не Яндекс). Читать далее о том, как я лечил сайт от вируса…

Кодировки MySQL и бинарные данные в полях типа BLOB и ТEXT — проблема из-за которой я не спал целую ночь

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

Лирическое вступление посвящается студийной CMS — S.Builder 3.7, чья админка работает только в Internet Explorer. На форуме разработчики на многие вопросы отвечают примерно так: «пришлите нам FTP-доступ к вашему хосту, мы проблему поправим». То есть пользы от форума не сильно больше, чем от закрытой тикет-системы. При переносе сайта с одного хоста на другой я упёрся лбом в проблему с кодировками. Увидев на странице часть русского текста и часть «кракозябров» привычно вздохнул: проблема типовая, сейчас втисну куда-нибудь запрос SET NAMES cp1251 и всё заработает. Но, не тут-то было. Читать далее о том, в чём же состояла проблема и как она разрешилась…

Вкусные роллы — подробный рецепт того, как приготовить роллы в домашних условиях

Итак, друзья, сегодня у нас по плану огромная (но, надеюсь, интересная) статья с подробнейшим рецептом роллов, следуя которому каждый из вас (даже тот, кто ранее был замечен в безнадёжном отсутствии кулинарных талантов) сможет приготовить вкусное блюдо, потратив пару часов и 850 рублей (поправка: цена указана на момент написания поста, а это было давно, сейчас продукты конечно подорожали где-то в 1,5–2 раза). Часть продуктов у вас останется, поэтому следующие 2-3 готовки окажутся существенно дешевле. А вот что у вас получится в результате:

Приготовленны в домашних условиях роллы на блюде

Читать дальше про самое вкусное…

Мультисайтинг на Drupal 7 с использованием поддиректорий вместо доменов

В рамках одного из последних проектов потребовалось развернуть независимую англоязычную копию сайта. Многоязычного решения (привет, http://drupal.org/project/i18n) не требовалось, потому что структура сайтов планировалась очень разная (проще говоря, при большом основном сайте нужна временная небольшая английская версия).

Разворачивать две инсталляции Друпала — было бы позором. Ибо поддерживать такой огород в дальнейшем — не реально. Очевидный выход — мультисайтинг. Но нюанс был в том, что заказчик хотел видеть английскую версию не на поддомене, а хотел — в поддиректории (в подпапке).

Читать дальше о том, как настроить мультисайтинг в Drupal 7 с использованием поддиректорий…

Наш отдых в Греции: отзыв от туристов, побывавших на Крите в отеле Themis Beach 4*

Путешествовать — это здорово! К путешествиям быстро привыкаешь, как и ко всему хорошему. Если в прошлом году я впервые за последние лет, наверное, пятнадцать выехал хоть куда-то из родного Подмосковья (сначала в Киев, потом — в Крым), то этим летом — мы с женой собрались и попали в Европу. Греция — это, конечно, не Франция или Германия, но даже в Греции (на фоне кризиса) ощущается европейский сервис. Природа и море — и подавно не обращают внимание на экономические проблемы — остаются прекрасными.

Читать подробнейший рассказ о том, как мы отдохнули…

Про футбольную сборную России на Евро-2012 и вообще

Чемпионат Европы по футболу 2012Все знают, что вчера сборная России проиграла грекам путёвку в плэй-офф Евро-2012. Каждый, кто смотрел матчи ЧЕ и переживал за сборную, какой-то вывод из всего увиденного безусловно сделал или сделает, как-то всё произошедшее себе уже объяснил или ещё объяснит. И это правильно, потому что анализировать — полезно для приобретения опыта.

В России, как минимум, каждый второй гражданин — футбольный эксперт. С одной стороны, профессионалов такое положение должно обижать, с другой — ну, а, кто в детстве не играл в футбол, кто не побеждал, кто не проигрывал? Вот зубы людям — лечили немногие, чтобы со знанием дела поучать дантистов, а в футбол — играли все. На то футбол и есть общедоступный и самый популярный вид спорта в Европе. Поэтому за футболом мирового и континентального уровня следят почти все, а за хоккеем (где мы, кстати, побеждаем) — только некоторые.

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

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

Как получить ссылку сразу на нужный момент ролика с YouTube?

О полезном. Если вы хотите получить ссылку, при переходе по которой воспроизведение ролика на YouTube начнётся сразу с нужной минуты и секунды, то в конец ссылки дописывайте &t=12m34s (проигрываться, при переходе по такой ссылке, ролик начнёт сразу с 34-ой секунды 12-ой минуты или, проще говоря, с 12:34, а не с самого начала).

Пример (воспроизведение начнётся сразу с 0:48):

http://www.youtube.com/watch?v=uOwhYqkCTok&t=0m48s

Ещё примеры ссылок на конкретные моменты видео-роликов есть в посте про Евровидение.

Это годный приём в ситуациях, когда вы хотите сослаться на конкретный момент ролика, чтобы не писать глупости в духе «смотри с пятой минуты».

P.S. А если добавить в конец адреса &hd=1, то при переходе по такой ссылке воспроизводится будет сразу HD-версия ролика (720p), если она конечно имеется. Думаю, понятно, что оба параметра можно совмещать, дописав сначала один, а потом и другой.

Евровидение 2012

Евровидение 2012 в БакуХочу написать про это ваше Евровидение. В этот раз я его смотрел и даже частично слушал. Делюсь выводами.

Во-первых, очевидно, что человек, который умеет ходить боком как доктор Зойдберг, получает +100 очков бонуса сверху, и поэтому — выигрывает. Вот пруф соответствующей походки: http://www.youtube.com/watch?v=C3w7LyetHMQ&t=0m47s

Во-вторых, это зажигательное «о-о-о-о-оо» я уже где-то слышал. Ну, например, у Бритни: http://www.youtube.com/watch?v=qzU9OrZlKb8&t=0m53s

Но, вообще, Loreen всё равно молодец, потому что выиграла не смотря на то, чтобы выступала одетая и не будучи фриком.

В-третьих, бурановские бабушки, конечно, тоже молодцы. Хотя, на мой взгляд, живьём на таком конкурсе им петь было тяжеловато (либо звукарь специально их сделал потише), а печка за их спинами — это адъ и Израиль одновременно. Всем ранее выступавшим от России декорации в разы круче делали.

Вообще у меня есть на 100% выигрышная идея: надо на следующее Евровидение (ну, или на первое из тех, которые выиграть нам позволит экономика страны) отправлять команду котиков. Они могут ничего не петь, но должны на сцене зевать, играть с клубком, спать и т.п. Победа — обеспечена.