БетаЛаборатория - внеочередной IT-блог

Записки обычного программиста

 

Из жизни

Храните деньги в сберегательной кассе

Кто кладёт деньги в банк, не должен забывать, что он просто седок, а вожжи в руках у банка. (с) Вильгельм Швебель

Есть у меня возле офиса один замечательный банк, по прозванию Финанскредит. Открыл я там на днях себе счет и соорудил карточку - специально для работы с PayPal, поскольку моя основная карта от Альфа-банка там не верифицируется.

Лирическое отступление. Проблема с картам Альфа-банка, насколько я смог разобраться кроется в совместимости авторизационных методов банка и PayPal. PayPal при попытке авторизовать карту отправляет не все требуемые данные, а именно отсутствует CVV2. Альфа-банк же такую транзакцию не принимает, хотя авторизационную сумму в 1,95USD на счету блокирует на 21 день.

И все вроде с Финанскредитом складывалось неплохо - открыли счет и выдали карту буквально за 30 минут (выдали бы быстрее, но принтер карт заклинило) и к PayPal карта тоже замечательно прицепилась. Негативные впечатления начались когда я решил подключить интернет-банк. Для начала надо было пойти в банкомат и активировать услугу, использую секретный временный код, на что банкомат выдавал временный пароль. Далее, первый раз авторизация на сайте происходит по номеру карты и полученному от банкомата паролику. А вот дальше, система просит указать любой логин и пароль... из 4(!) цифр(!). Вся безопасность строится на том, что набор пароля производится на виртуальной клавиатуре. Что она из себя представляет - это панель содержащая 10 картинок на которых при каждом обновлении страницы цифры от 0 до 9 отображаются в случайном порядке. При клике на картинку в поле для пароля попадает идентификатор "ячейки" в которой расположена картинка. То есть на сервер отправляется не сам пароль, а лишь 4 номера ячеек на которые кликнул пользователь. И все бы ничего, но... Во-первых, сессии для отображения картинок обновляются только при обновлении всей страницы. То есть, если не обновив страницу запросить с сервера картинку для любой ячейки, мы получим ту же картинку. Номер ячейки на сервер передается просто в виде GET переменной. То есть, даже если учесть что картинки не кэшируются, злоумышленник может просто повторно сгрузить все картинки с цифрами. Во-вторых, на каждую цифру приходится всего два(!) варианта изображения. Это значит что для определения цифры, злоумышленнику даже не потребуется OCR - достаточно просто сравнить полученный файл со всеми 20 возможными. Что же в итоге? Достаточно получить возможность внедрить в браузер произвольный код (фактически без разницы какой - JS, Java или Flash) и злоумышленник знает какие цифры находятся в каждой ячейке, он знает и номер ячеек, которые выбрал пользователь и вуаля - он имеет доступ к нашему интернет-банку. Да, он не может совершать там операции более чем на 500 рублей за раз (для больших требуется код, оправляемый на SMS-номер владельца, если он подключил себе эту услугу). Но вот никаких ограничений на количество таких операций нет, так что...

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

Как я уже говорил - в основном эта карта мне нужна для использование с системой PayPal, так что сразу после активации интернет-банка я верифицировал карту и оплатил одну большую покупку. По моим расчетам, после всех конвертаций и комиссий, на счету должно было остаться чуть меньше 1000 рублей - то есть денег было впритык. Но, каково же было мое удивление, когда на следующий день, банкомат известил меня, что у меня задолженность(!) в 2870 рублей. Интересная у банка получалась математика. Первая мысль была о проблемах самого банкомата, вторая - о каких-нибудьт скрытых комиссиях. Чтобы разобраться, я полез в интернет-банк и запросил выписку. В ней по прежнему значилась цифра "-2870 руб.", однако, по сумме всех транзакций (в том числе и конверсионных) получалось именно так, как я рассчитал - должно было быть чуть меньше тысячи.

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

Сколько же людей оказалось вот так обмануто? Специально или случайно происходят такие вещи - это уже вопрос отдельный - в моей ситуации я склоняюсь к тому, что это все-таки какая-то программная ошибка, ибо так неумело не воруют. Тут больше меня интересует, сколько людей таких ошибок не замечает. На самом деле, ведь и я бы мог не заметить, если бы не провел всего одну операцию по карте - через месяц или два, исчезновение 100 евро я бы мог отнести к собственной забывчивости, поскольку много оплачиваю через PayPal, а так же периодически расплачиваюсь картами в магазинах и т.д. А что уж говорить о тех, для кого это вообще не деньги...

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

Новый WYSIWYG

Ну вот, переделал django-приложения для работы с WYSIWYG-редакторами. Первоначальная реализация была достаточно кривая, к тому же давала возможность работать только с FCKEditor 2, который уже достаточно устарел. Кроме того, после некоторых оптимизаций работы nginx, она перестала работать =/ Новое приложение уже более корректно, хотя еще тоже не доделано. На данный момент еще не реализована нормальная работа с https, однако это проблема не только данного приложения, но и всей системы в целом.

От использоваия FCK для себя я отказался в пользу TinyMCE. Но в самом приложении я реализую постепенно поддержку минимум 3-4х различных редакторов, после чего выложу это все в open-source. Увы, пока мне приходится все это делать одному. Сейчас я перешел к более-менее активному поиску помошника по django (нужно по работе), но насколько быстрым и успешным будет этот поиск не знаю. Сначала я очень понадеялся на проект http://djangopeople.net, но увы... Как оказалось большая часть москвичей, да и россиян вообще, именно к джанго отношения не имеют. Не совсем мне понятна их мотивация для регистрации на таком сайте, но судя по всему, просто чтобы дополнительно "засветиться"  везде, где могут обитаться потенциальные заказчики. Грустно...

PS: начинаю морально готовиться к тому, что сотрудников надо будет искать не в нашей стране.

Почему я редко пишу в блог

Лучшее враг хорошего
(c) народная пословица

Есть у меня одна проблема с подбором материала - мне все время кажется, что выбранная мной тема будет не нужна и не интересна. Либо, кто-то это уже точно написал, либо она вообще не достойна опубликования. Из-за этой проблемы прерывались мои неоднократные попытки вести блоги на блогосервисах, и из-за нее же я не публикую, и вообще не описываю, большинство из своих наработок. Причем, я отлично знаю, что в десятках блогов разбирают одни и те же проблемы, разбирают одни и те же решения и все такое прочее. Но сам, почему-то, не могу - только если себя заставлять. А написанное через силу вряд ли вообще будет читабельно. В чем корни моей проблемы я, увы, пока не нашел, однако я стараюсь бороться с ней, потому что понимаю - хоть я и не очень крутой программист, но у меня есть чем поделиться и о чем рассказать. И я буду стараться рассказывать. Я очень надеюсь, что постепенно в этом блоге появятся постоянные читатели, которым будет интересно и полезно. И надеюсь они будут задавать вопросы - мне всегда было легче отвечать на вопросы, чем упреждать их своевременным описанием - вопрос для меня как катализатор. 

Авторизация

Логин:

Пароль:


Регистрация | Забыли пароль?


Последние записи


Promo

Follow pyhoster on Twitter Subscribe

Реклама

A Django project.