Проверка счета: только 1 счет на человека
В моем сообществе каждый пользователь должен иметь только одну учетную запись.
Поэтому мне нужно решение проверить, что конкретная учетная запись является единственной, которой принадлежит пользователь. В настоящее время я использую проверку электронной почты. Но мне действительно не нужны адреса электронной почты пользователей. Я просто пытаюсь предотвратить несколько учетных записей на человека.
Но это, конечно, не работает. Во всяком случае, люди создают временные адреса электронной почты или владеют несколькими адресами. Таким образом, они регистрируются с использованием разных адресов электронной почты и поэтому получают более одной учетной записи, что не допускается.
Поэтому мне нужно лучшее решение, чем проверка (легко обойти) электронной почты. Кстати, я не хочу использовать OpenID, Facebook Connect и т.д.
Требования:
- метод проверки должен быть доступен для всех пользователей
- не должно быть никаких затрат для пользователя (не менее 1 $)
- проверка должна быть безопасной (безопаснее, чем почтовый подход)
- Пользователь не должен требовать слишком много личных сведений.
- ...
Есть ли у вас идеи для хороших подходов? Большое вам спасибо заранее!
Дополнительная информация:
Мое сообщество - это браузерная игра, а именно игра футбольного менеджера. То, что делает несколько учетных записей привлекательными, заключается в том, что пользователи могут торговать своими игроками. Поэтому, если у вас есть две учетные записи, вы можете купить слабых игроков за чрезмерные цены, которые не будет платить "реальный" покупатель. Таким образом, ваш "первый счет" получает огромные суммы денег, а "вторая учетная запись" становится бедной. Но вам не все равно: просто создайте еще одну учетную запись, чтобы сделать первый богаче.
Ответы
Ответ 1
Очень интересный вопрос! Основная проблема здесь заключается в многочастности -
- Открытие учетной записи тривиально (поскольку создание новых идентификаторов электронной почты тривиально).
- Но эффект открытия учетной записи в игре НЕ тривиален. Открытие новой учетной записи в основном дает вам определенную сумму денег для покупки игроков.
- Перенос денег на другой аккаунт тривиален (трейдерами).
Объединяя 1 и 2, у вас есть проблема, что у новых игроков есть несправедливое преимущество (чего у них не было бы в реальном мире). Вероятно, это нормально, поскольку оно приводит новых пользователей на ваш сайт.
Однако добавив 3 в микс, у вас есть проблема, что новые игроки легко могут передать свое преимущество старым игрокам. Это позволяет старым пользователям играть в систему, разрушая удовольствие для других.
Решение может быть удалено либо 1,2,3.
-
Удалить 1 - это та часть, на которую вы фокусируетесь. Как и другие, это невозможно сделать с точностью 100%. Но есть способы, которые будут достаточно хороши, в зависимости от того, насколько строгим является ваш критерий "достаточно хорошо". Я считаю, что лучший компромисс заключается в том, чтобы попросить пользователя указать номер своего мобильного телефона. Он эффективен и позволяет вам связаться со своими пользователями еще одним способом. Другим способом было бы сделать вашу услугу "только приглашением" - гарантируя, что есть четко определенный "след" приглашений, которые могут однозначно идентифицировать пользователей.
-
Удалить 2 - Никто не предложил это, что немного удивительно. Не давайте новым пользователям кучу денег только для регистрации! Заставьте их работать на нее, подобно тому, как поднимать начальный капитал в реальном мире. У вашего симулятора футбола есть социальные аспекты? Как насчет того, чтобы дать пользователям только деньги, когда их счет "друзей" превысит определенное число (увеличив количество потенциальных инвесторов, которые дадут им деньги)?
-
Удалить 3 - Кто-то еще опубликовал лучшее решение для этого. Примите стратегию SO, в которой новый пользователь должен играть в течение 3 часов, прежде чем им разрешат передавать игроков. Или, может быть, добавить в свою игру "тренировочный" этап, который заставляет нового игрока доказывать свою ценность, зарабатывая достаточно денег в имитируемой среде, прежде чем им разрешат играть с реальными пользователями.
Или любую комбинацию из вышеперечисленного! В сочетании с эвристикой, подобной сопоставлению IP-адресов и поиску подозрительных транзакций, можно сделать мошенничество в игре совершенно нежизнеспособным.
Конечно, последнее, что вам нужно иметь в виду, это то, что это просто игра. Если у кого-то много проблем, чтобы получить немного преимуществ в симуляции, они, вероятно, заслуживают того, чтобы их сохранить. Пока все веселятся!
Ответ 2
Вам следует попросить нечто более уникальное, чем электронное письмо. Но нет возможности быть абсолютно уверенным, что у игрока нет двух аккаунтов.
Решение IP не является решением, так как у людей, играющих в compagny/school/3G, будет одинаковый IP-адрес. Кроме того, смена IP-адреса проста (reset маршрутизатор, прокси-сервер, используйте 3G vs wifi)
Некоторые веб-сайты (предложение о работе,...) запрашивают официальный идентификационный номер (удостоверение личности, паспорт, социальное обеспечение, водительское удостоверение, виза (без номера безопасности, поэтому peolple будет что вы не будете их заряжать),...)
Это решение получило несколько обратных ссылок:
- У несовершеннолетнего не всегда есть удостоверение личности/визы.
- pepole не любит раздавать такую информацию. (на самом деле, в зависимости от того, где вы живете: например, в Испании, очень часто запрашивается идентификационный номер)
- люди владеют более чем одной визой.
- можно создать валидный номер ID/визы.
Альтернативный способ:
попросите оплатить 1 $
- чтобы позволить торговать больше, чем игрокам X/тратить больше, чем деньги X.
- люди, которые платят плату, получили некоторое преимущество: меньше рекламы, дополнительных игроков,...
- оплата, ограничит создание нескольких учетных записей.
- Плата может быть оплачена с использованием налогового номера телефона (какая-то компаньона предоставляет международную систему).
- платежный носитель может использоваться как идентификатор (номер визы)
помещает некоторое ограничение в новую учетную запись (например, SO).
- например: "вы должны играть по крайней мере за 1 час до торговли игроком"
- например: "вы должны играть как минимум за 3 часа до торговли более чем тремя игроками"
Использовать логику для обнаружения нескольких учетных записей
- использовать cookie для обнаружения нескольких учетных записей
- проверить время последнего подключения обоих игроков до транзакции. (если игрок выходит из системы за 1 минуту до входа в систему B): происходит что-то)
Моя рекомендация:
Используйте смесь всех меток thoses, но держите пользовательский интерфейс без "формы для заполнения, чтобы продолжить"
Ответ 3
Я знаю, что, вероятно, вы ничего не ожидали, но...
Мое предложение состояло в том, чтобы препятствовать людям создавать другой аккаунт, предлагая некоторые бонусные значения, если они используют одну и ту же учетную запись в течение более длительного периода, своего рода программу лояльности. По какой-то причине использование новой учетной записи дает некоторые преимущества. Пусть их устранить. Здесь много умных людей, поэтому, если вы расскажете больше о преимуществах, которые кто-то может придумать. Я полностью убежден, что это по теме на SO, хотя.
Ответ 4
Мы реализовали это, скрыв регистрационную форму. Наши клиенты видят только регистрационную форму, в которой мы используем номер мобильного телефона в качестве имени пользователя и отправляем пароль по текстовому сообщению.
Бэкэнд-системы соответствуют мобильному номеру нашей основной базе данных клиентов, которая обеспечивает уникальность номера мобильного телефона.
Ответ 5
Вот идея:
- Храните UUID в файле cookie у клиентов. Каждый пользовательский логин хранит UUID из Cookie по отношению к объекту учетной записи в базе данных.
- Сделайте то же самое с IP-адресами вместо UUID.
После этого напишите интерфейс программы для своих мастеров игры, чтобы:
- Показывать разные имена учетных записей, но тот же IP (в течение последних х часов)
- Показывать разные имена учетных записей, но тот же UUID (тем не менее, как давно)
- Выделите наборы данных из двух точек выше, где произошли действия (например, передача игрока), которые могут быть использованы при использовании нескольких учетных записей.
Я не думаю, что вы должны решить эту проблему, запретив людям, имеющим две или более учетных записей. Это невозможно и неэффективно. Упростите, что злые действия и (автоматически временные) запрещают этих людей.
Ответ 6
Невозможно выполнить это с помощью программы.
Ближе всего вы можете проверить IP-адрес. Но он может меняться, и существуют прокси.
Затем вы можете получить MAC-адрес компьютера, но сетевую карту можно изменить. И компьютер тоже.
Тогда есть один способ сделать это, но вам нужно видеть людей лицом к лицу. Передайте им лист бумаги с уникальным кодом. Они могут подписаться только в том случае, если у них есть код.
Ответ 7
Наиболее эффективным решением может быть использование биометрических клавиш. Человек может быть идентифицирован тем, как человек пишет предложение.
Эта компания предоставляет продукт, который может быть использован для реализации ваших требований: http://www.psylock.com/en
Ответ 8
Я думаю, что 1 учетная запись на адрес электронной почты должна быть достаточно хороша для ваших нужд. В конце концов, проверка аккаунта не должна заканчиваться сразу после регистрации.
Вы можете опубликовать IP-адрес компьютера, на котором было отправлено каждое сообщение, чтобы помочь вашим пользователям обнаружить, когда кто-то использует несколько учетных записей с одного компьютера, и вы можете использовать систему ранжирования, чтобы препятствовать людям использовать временные учетные записи.
Ответ 9
В динамике вашей игры вы можете потребовать, чтобы оба пользователя были в сети для торговли? Если это так, вы можете проверить IP-адреса обоих пользователей, участвующих в торговле, которые будут одинаковыми, если пользователь не будет платить за несколько интернет-подключений и получить доступ к двум учетным записям с отдельных компьютеров.
Ответ 10
Обратите внимание на точный сценарий, который вы говорите, является проблемой.
Отслеживать ожидаемую/справедливую торговую ценность игроков и предотвращать откровенно лоп-сторонние сделки, особенно. для новых учетных записей. Предположим, что подавляющее большинство пользователей в вашей системе не являются читерами.
Вы также можете делать такие вещи, как просачивание средств/очков за неторговые действия/автоматическую сверхурочную работу и т.д.
Ответ 11
Попросите их ввести свой номер телефона и отправить ему текстовое сообщение. Затем сохраните уникальный номер сотового телефона. У большинства людей есть один сотовый телефон, и они не собираются просить своего друга одолжить его просто для создания второй учетной записи.
http://en.wikipedia.org/wiki/List_of_SMS_gateways
Ответ 12
Я бы предложил подход, используя две инициативы:
1) Не разрешайте торговым маркам новые торговые марки. Учетные записи должны пройти период ожидания и доказать, что учетная запись является законной, выполняя некоторые неторговые действия.
2) Публиковать тот факт, что мошенники будут дисквалифицированы и наказаны. Периодически выполняйте поиск учетных записей, используемых для сброса плохих игроков и расследования. Запретить/дисквалифицировать читеров и публиковать запреты, чтобы люди знали, что правила соблюдаются.
Никакой метод не был бы надежным, но угроза наказания должна сводить к минимуму обман.