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

Я скоро вернусь

Доброе время!

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

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

Некоторое время назад я окончательно понял, что взгляды на ведение бизнеса и роли каждого в нём у меня и моих деловых партнёров различны, и ушёл из фирмы «Казанский портал», чтобы заняться осуществлением своих планов.

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

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

Тоже относится и к письмам-комментариям к заметкам. Я помню, что в ящике были весьма ценные комментарии, но не могу их привести, потому что они безвозвратно потеряны.

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

Китайская народная мудрость

Комментарий по поводу закрытия «aleshru» и «valyard».

По поводу статьи на Runet я получил массу писем. Сначала, что касается сайта Valyard. Ни я, ни Дмитрий Смирнов не имеем отношения к этому событию. Автор статьи неверно выразился. С Valyard’ом мы в нормальных отношениях и тенденции к конфронтации нет (понятно выразился? ;).

Что касается Aleshru, тут история посложнее, но тоже довольно понятная. На первой странице его сайта отображались список из нескольких последних переходов с сайтов и поисковых машины (так называемые «referers»). Я обнаружил, что выводимые URL не обрабатываются должным образом — имеется возможность включить в них теги.

Собственно, автором скрипта является Дима и в последних версиях, как он мне сказал, этот баг был устранён.

Первое, что я сделал — включил в один из таких URL тег <script> и сделал перенаправление на порносайт. После чего отправил письмо Aleshru и Дмитрию Смирнову. И тот и другой по разным причинам посмеялись, и я забыл об этой истории, уверенный, что Aleshru дыру залатал.

Через некоторое время шутку повторил Дима, после чего Aleshru сайт закрыл. Позднее на Runet появилась указанная статья. Причина её появления мне не ясна, не ясно так же что помешало автору лучше разобраться в ситуации.

Кстати, дыра закрывается вызовом ровно одной функции языка программирования PHP, на котором написан скрипт.

Рекомендую прочесть программистам и администраторам

Кстати, по поводу PHP. Рекомендую почитать данный документ (формат PDF) о различных трюках, применяемых в решении разнообразных задач, в том числе и задач, встречающихся при программировании на PHP. Если не обращать внимания на некоторые ошибки, в целом очень полезное чтиво.

Чтобы было понятно о каких ошибках я говорю, приведу простой пример. Конструкция

$ext = substr($str, strrpos($str, '.'));

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

Почему так происходит? Функция strrpos ищет в переменной $str подстроку ’.’, в случае, если она её не находит, она возвращает false, что, в данном случае, будет трактоваться как ноль. В результате функция substr вернёт строку, начиная с нулевого элемента, т.е всю строку целиком.

Пишите!