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

«Старая перечница», Miranda MSN, ответы, гаманок

В свете многочисленных пожеланий появилась мысль прикрутить к сайту небольшой форум, как у Спектатора или Psyberia. Как только мне удасться сотворить для него достойный дизайн, сделаю это обязательно.

Читал сегодня размышления «Старой перечницы» по поводу формирования PHP-форума из кусков файлов, вставляемых далее при помощи require. И только я отписал в форуме, что так делать не годится, как мое замечание лишило форум работоспособности.

Благодаря тому, что файл формирующий сообщения форума, как оказалось в данном случае, не является исполняемым я смог его выкачать и посмотреть в чем дело:

$dataName[1] = "BOLK";
$dataMail[1] = "se@e-kazan.ru";
$dataMessage[1] = "...осторожно отфильтровывать символы ", <? и так далее...";
$dataDate[1] = "6.10.2001 10:15";
$dataAnswer[1] = "######";
$index = 1;

Роль слона в посудной лавке сыграла кавычка, которую я поставил совершенно случайно, а Павел как-то умудрился отключить ее фильтрацию. Вряд ли он трогал настройки в php.ini, скорее всего использовал конкатенацию через точку, в этом случае фильтрация кавычек и других потенциально опасных символов не происходит и они попадают в строку «как есть».

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

Надо было на этом остановиться. Но я подумал, что за это время кто-то может обнаружить уязвимость и воспользоваться этим. Мне эта мысль не понравилась и я решил, что человеку нужно помочь.

Воспользовавшись дырой и довольно успешно миновав защиту от различных спецсимволов при помощи вставок \xHH, я скопировал себе скрипт форума, исправил его и залил назад, но, в спешке, пропустил одну-единственную букву и привел форум в негодность во второй раз — теперь все комментарии заменяются на единицы. Сегодня, похоже, не мой день. :(

Переборщил с помощью. В чем публично перед Павлом извиняюсь. :( Правда и дыру закрыл…

Miranda MSN

Как вы наверное знаете, я уже давно не пользуюсь Mirabilis ICQ, предпочитая ее клон, Miranda ICQ — вещь, потенциально, весьма более качественную и, к тому же, динамично развивающуюся.

Одной из возможностей, заложенных в Miranda еще до рождения, является возможность подключения плагинов для поддержки различных видов протоколов. В частности, не так давно появилась альфа-версия плагина для поддержки протокола «Oscar», более известного, как ICQ2000.

Я давно мечтал о появлении в Miranda поддержки MS Instant Messenger. Работа над этой проблемой весьма вяло, но все же продолжалась в Miranda team. И вот этот момент настал! Ровно четыре дня назад ночной билд Миранды начал поддерживать MS IM. Сейчас идет активная работа над ошибками, но пользоваться плагином уже можно.

Правда, еще нет поддержки прокси и статуса «пользователь печатает сообщение», но, думаю, в скором времени поддержка этих возможностей появится.

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

Итак…

Задача о пяти домах и прочих пяти признаках. Ответ: на Порше ездит Жора.

Задача о людях, переходящих через мост. Ответ: первыми идут Men1 и Men2, Men1 возвращается с фонариком, потом переходят Men5 и Men7, Men2 возвращается с фонариком, мост переходят Men1 и Men2.

Задача о садовнике и его смышленом работник имеет сразу три решения. Все три были найдены сотрудниками Газета.Ру, написавшими программу перебора и присланы Dead Emotion.

Решение раз
Решение два
Решение три

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

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

Задача

Решать задачи в уме или на бумаге замечательно, но иногда хочется чего-то более интерактивного. Boris Dusovitsky прислал ссылку на серию логических загадок, выполненных на Flash (примерно по 300КБ каждая).

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

Я был несправедлив к Энциклопедиям Яndex’a. Слово, которым моя бабушка называла кошелек там есть, просто пишется оно через два «а» — «гаманок». Цитату из словаря Даля мне прислали сразу семь читателей.

ГАМАН, гаманец, гаманок м. южн. зап. кожаный кошелек для денег. Гамза ж. или гамзуля, вернее гомза, гобза, от гобина, обилие; то же, кошель, бумажник, денежник; || деньги. Раскошеливайся, у тебя гамзы-то много! Гамзить, копить гамзу. Гамзила об. кто гамзу копит.

Я был несправедлив к «Энциклопедиям…», но еще более я был несправедлив к ресурсу под названием «Рубрикон», которого я совершенно обошел вниманием. Впрочем, у меня есть оправдание — ссылку на него я узнал лишь недавно, благодаря письму от Kirill’a Gribunin’a.

Рубрикон. Лого

«Рубрикон» не умеет исправлять ошибки в набранных словах, как это делает Яndex, но обладает с неоспоримым преимуществом: поиск ведется сразу в 16-ти энциклопедиях. В круг поиска входят, например, Рок-энциклопедия, Конституция РФ и Популярная художественная энциклопедия.

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

На этом у меня на сегодня все. Удачных выходных. Пишите!