Как стать автором
Обновить
0

Честное голосование в интернете с использованием sms

Время на прочтение3 мин
Количество просмотров7.2K
В декабре 2011 года мы пытались провести конкурс на лучшую фразу для футболки с главным призом — iPhone 4. Конечно мы подозревали, что при авторизации через Facebook и Vkontakte могут быть всяческие накрутки и подкуп голосов. Однако, масштаб фальсификаций превысил всякие наши ожидания и составил тысячи левых голосов без даже единого захода на страницу голосования на нашем сайте. В результате мы были вынуждены сначала снять несколько фраз с конкурса, а затем вообще объявить результаты голосования недействительными. Назначив повторное голосование на конец января 2012 года, мы серьезно задумались над тем, как же обеспечить максимальную честность и объективность повторного голосования.

Отказавшись от авторизации по email (как от способа не дающего должного уровня защиты от мошенничества), мы решили прибегнуть к платному сервису SMSDirect (от компании iFree). Голосование посредством SMS проходит в 3 этапа:
1. Пользователь жмет кнопку “Голосовать” у понравившейся фразы;
2. Вводит российский номер сотового телефона получает персональный код по SMS;
3. Вводит полученный код на сайте и подтверждает свой голос.

На странице голосования пользователям гарантируется безопасность их личных данных, бесплатность полученного SMS и возможность проголосовать только один раз с одного номера. Из очевидных минусов такого сценария интернет-голосования — его небесплатность для организатора и высокая вероятность отказа пользователей от раскрытия личных данных (номеров телефонов). Из плюсов — высокая достоверность результатов голосования и большая вероятность участия мотивированных респондентов.

Технические шаги:

1. Мы подключили SMS-сервис (SMSDirect)

2. Сделали стандартную форму для идентификации через SMS из двух частей:
(форме передавался id фразы за которую голосует человек)
а) ввод номера ->
(проверка номера и отправка кода) ->
б) ввод кода, который пришел.

3. На каждый сабмит первой части, если был введен корректный номер (правильный формат + не голосовавший за эту фразу),
— создавалась запись в базе, которая ждала подтверждения.
— создавался id сессии, который связан с кодом и номером телефона
таким образом корректным будет код актуальный только для этой сессии.
(то есть если ваш код в данный момент введет, другой голосующий человек в своей форме — он не сработает.)
— открывалась вторая часть (ввод кода)

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

Потенциальные технические сложности: Проверка номера, если пришлось бы проверять коды операторов в регионе СПб и ЛО, но оказалось что SMSDirect отправляет смски по всей России и в одну цену, поэтому с нашей стороны достаточно было ограничиться проверкой 7-ки вначале, и общего количества цифр в номере (соответственно остальные некорректные номера отметает уже оператор).

Защита от потенциального мошенничества (и ботов), которые вводят разумные номера и просто шлют на них наши смс, с целью доставления нам неприятностей. Кроме как ограничивать, количество подключений от пользователя с точностью до ip/cookie не получается, что, в общем-то, не совсем надежно. Интересно, как решают и решают ли такую задачу крупные компании (Вконтакте и Google, Альфабанк), использующие отправку SMS для пресечения мошенничества и авторизации.

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

Главный бонус для нас: прозрачность голосования. Сопоставляя базу голосов с базой отправленных смс (у нас + на стороне сервиса) легко проверяется уникальность и действительность голосов с точностью до номера. Ну и как показывает практика, завести три SIM-карты гораздо сложнее, чем три электронных почтовых ящика или три аккаунта, скажем, на Facebook :)
Теги:
Хабы:
+5
Комментарии10

Публикации

Информация

Сайт
www.kidsreview.ru
Дата регистрации
Дата основания
Численность
2–10 человек
Местоположение
Россия

Истории