понедельник, 4 октября 2010 г.

Одна небольшая история про Вконтакте

В минувшие выходные встречались со старыми друзьями, с которыми вместе начинали постигать «компьютерную науку», занимаясь в разное вермя веб-программированием, крякингом софта и прочими делами. За бокалом пива вспоминались разные компьютерные байки, одну из которых я и хотел бы тут рассказать. А история эта о том, как слово «javascript» стало запретным на Вконтакте.

Было это в октябре 2007 года.
Тогда на вконтакте практиковался увод аккаунтов с помощью воровства куков, так как в них хранился email и айди пользователя, а также md5 хеш его пароля без какой либо соли. Поэтому, после получения кукисов, получить пароль от аккаунта было делом техники (Хотя, справедливости ради, стоит отметить, что по-началу вконтакте вообще был одной сплошной дырой. Например, в течении почти месяца была открыта дыра, позволяющая залогиниться под чужим аккаунтом просто сменив в куках свой айди, на чужой).

Для увода cookies злоумышленники предлагали доверчивым пользователям под разными предлогами скопипастить некий код в строку браузера, который собственно и сливал куки (попробуйте вставить в адресную строку, например "javascript:alert('')").

Так вот Дуров начал решать проблему в своем стиле. Сначала (если не ошибаюсь, 10 октября 2007 года) на всем сайте запретили писать слово «javascript» (оно заменялось на «javas?1?ript»). И видимо был очень счастлив, подумав, что решил проблему.

Но не тут то было — уже на следующий день, вместо «javascript» хацкеры просто писали «Javascript» или «JaVascript». Браузер благо к регистру не привередлив…

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

И тогда разработчики контакта приняли очередной гениальный ход, запретив писать слово «cookie», чтобы уж никто ими точно не полакомился. Как вы догадались, хацкеры в долгу не остались и просто заменили document.cookie на… eval('document.coo'+'kie'). :)

Вот такая вот небольшая история, мораль из которой каждый может вынести для себя сам.

Сперто с Хабра.