как запретить пользователям создавать несколько учетных записей в бесплатной ежедневной ограниченной службе

Идея в том, что у нас есть сайт для бесплатных загрузок

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

  1. Обнаружение IP не очень хорошее; потому что у меня много пользователей с одного ip (пользователи из одной организации)
  2. проверка электронной почты и уникальная учетная запись электронной почты не годятся; вы можете создать более одной учетной записи
  3. смс-подтверждение не годится; пользователи могут использовать номер мобильного телефона своего друга для регистрации другой учетной записи

Я видел сайт, который решил эту проблему (частично) www.gameknot.com

Они определяют пользователей по имени компьютера или MAC-адресу или чему-то еще, я не уверен, я зарегистрировал там 3 пользователей, они обнаружили меня, сказали: «эти три пользователя используют один и тот же компьютер» !! и забанил все три аккаунта.

Когда я переустановил другую винду, проблема решилась, у меня там один пользователь.

Поэтому я спросил себя: «Как они это сделали»?

Есть ли какие-либо предложения относительно того, как я могу справиться с этой проблемой?


person Alireza    schedule 26.12.2009    source источник
comment
Вам может быть интересен этот вопрос   -  person Martin Thoma    schedule 12.09.2013


Ответы (6)


Если бы я реализовал такую ​​систему, чтобы иметь только один вход в систему для каждого пользователя или что-то в этом роде, я бы сделал что-то вроде этого:

1: создайте идентификатор машины на основе IP, возможно, используя JavaScript/Java Applet/Flash, вы можете получить MAC или я не знаю, что учитывать. Для простоты предположим, что я вычисляю идентификатор хоста следующим образом:

ID = MD5(PUBLIC_IP) + MD5(LOCAL_IP) + MD5(MAC)

2: Пользователь 1 входит в систему и давайте представим, что я вычислил идентификатор хоста = 666. МЫ ищем таблицу в БД, скажем, table_hosts, которая содержит эти данные (user, host_id)

3: Пользователь 1 использовал все 5 загрузок (отслеживайте их с помощью сеанса или записей из базы данных)

4: Пользователь 1 пытается войти в систему как Пользователь 2, и теперь мы вычисляем идентификатор = 666, тот же идентификатор = 666, мы просматриваем table_hosts и обнаруживаем, что тот же идентификатор хоста использовался в тот день и пользователем 1. Теперь мы можем банить аккаунты с таким ID, давать предупреждения вроде 20% до бана и т.д.

Надеюсь, я смог помочь, но помните, будьте изобретательны, это все, что имеет значение!

LE: Поскольку другие обсуждают общие машины, идентификатор может быть рассчитан следующим образом:

ID = MD5(PUBLIC_IP) + MD5(LOCAL_IP) + MD5(MAC) + MD5(NameOfLoggedOnUser)

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

person Dr.Optix    schedule 26.12.2009
comment
спасибо, вроде здорово! Итак, в чем разница между PUBLIC_IP и LOCAL_IP? Я гуглил и не смог найти код для определения MAC-адресов пользователей. Вы знаете код для этого? - person Alireza; 27.12.2009
comment
Под PUBLIC_IP я подразумеваю IP-адрес, который вы видите, когда заходите на whatismyip.com. Под LOCAL_IP – IP-адрес, принадлежащий машине, находящейся за маршрутизатор, что-то вроде 192.168.xx, 10.0.xx и т. д. В Windows вы можете увидеть, что такое локальный IP-адрес, используя: ipconfig в cmd код kodejava.org/examples/250.html может вам помочь. - person Dr.Optix; 27.12.2009

Если бы это был MAC-адрес, переустановка Windows ничего бы не изменила — это аппаратный адрес.

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

Даже привязка к одной машине имеет свои недостатки — что, если это общая машина (дома или даже в интернет-кафе).

Вероятно, идеального решения не существует, потому что у вас будут случаи, когда кто-то законно делает что-то, что выглядит изворотливым, и изворотливые люди могут выглядеть законными.

person mopoke    schedule 26.12.2009
comment
дорогой мопоке, с куки не получается, потому что пользователи могут их удалить. Спасибо, в любом случае - person Alireza; 27.12.2009

Главный вопрос здесь — найти баланс между контролем и раздражением. Приведет ли больший контроль к большему раздражению ваших пользователей?

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

Вы упоминаете проверку электронной почты и уникальную учетную запись электронной почты как нехорошие. Но не забывайте, что создание новой учетной записи электронной почты только для этой цели является проблемой для большинства пользователей. Так же как и регистрация новой учетной записи даже с существующей электронной почтой. Так что да, некоторые пользователи получат немного больше, чем должны, но будут ли это иметь серьезные негативные последствия для бизнеса?

Если вы хотите, чтобы они платили за дополнительные загрузки, будет два типа. Тем, кто ценит свое время и ненавидит суету. Упростите им задачу, и они с радостью заплатят! Это ваши клиенты, о которых вы хотите заботиться.

Другая группа — это те, кто будет изобретать новые уловки, чтобы не платить, как бы ты ни старался. Вы обнаружите их компьютер? Тогда они пойдут в интернет-магазин со многими другими компьютерами, так что вы ничего не добьетесь. Вы просто ничего не можете сделать против этих пользователей. Но стоит ли переживать?

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

РЕДАКТИРОВАТЬ.

Только что заметил этот ответ, показывающий, что получать поддельные электронные письма даже проще, чем я думал. Однако сколько пользователей узнают об этом сервисе?

person Dmitri Zaitsev    schedule 16.09.2013
comment
+1 после почти 4 лет этого вопроса я полностью согласен с вашими пунктами. - person Alireza; 17.09.2013

Они, вероятно, использовали файлы cookie или IP для отслеживания, и то, и другое легко победить. Как и со всеми проблемами безопасности, это вопрос доступности и безопасности.

Если это действительно, действительно важно, вы можете использовать подтверждение по смс. Это, вероятно, настолько безопасно, насколько это возможно... Но это довольно нетривиальная проблема, особенно с пользователями из других стран. Я бы просто пошел с ведением журнала IP (чтобы вы могли периодически выполнять поиск, чтобы увидеть какие-либо странные закономерности) и куки.

person Jonatan Hedborg    schedule 26.12.2009
comment
дорогой Джонатан, Как я уже говорил, у меня 50 пользователей с одним IP, ну и что? забудьте об IP. - person Alireza; 27.12.2009
comment
Да. Это не должно было быть надлежащей системой безопасности, основанной на IP, просто способ проверить наличие ботов, а что нет. Если вы подозреваете активность ботов, журналы IP-адресов могут пригодиться, чтобы решить, хотите ли вы запретить их или нет. - person Jonatan Hedborg; 27.12.2009

Похоже, что StackOverflow использует Open ID для решения этой проблемы, если не устранить ее.

person bmargulies    schedule 26.12.2009
comment
Открытый идентификатор не позволяет двум людям использовать один и тот же идентификатор. Это не предназначено и никоим образом не помогает помешать людям создавать несколько идентификаторов. Open ID решает другую, не связанную с этим проблему, которая заключается в предотвращении кражи личных данных и разрешении идентификации без пароля. Некоторые провайдеры Open ID могут проверить вас, но я думаю, что это не является обязательным требованием. - person Sebastien Diot; 06.06.2012

У меня есть бесплатный сайт, на котором люди регистрируют учетные записи, и у меня были проблемы, похожие на ваши. Я требовал подтверждения электронной почты и регистрировал IP-адреса, но люди всегда найдут способ обмануть систему. Единственное решение — регулярно контролировать свой сайт, чтобы убедиться, что ничего необычного не происходит. У меня был случай, когда три проверенных аккаунта входили в систему с одного и того же IP-адреса всего через несколько минут друг за другом, и все они выполняли одно и то же действие. Я написал одному из пользователей, который пожаловался: «О нет, это просто я, я не понимаю, о чем вы говорите». В конце концов я заблокировал учетную запись этого пользователя, и все три учетные записи одновременно стали неактивными.

У меня также был другой случай, когда кто-то создавал поддельные учетные записи электронной почты, но делал это практически одинаково, каждый раз используя один и тот же пароль и аналогичный адрес электронной почты. Он создавал проблемы на сайте, поэтому я забанил все его аккаунты, и в конце концов он остановился.

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

Удачи!

person Jason    schedule 26.12.2009
comment
хорошая идея, те же пароли.... это хорошо, но требует больших усилий, особенно когда количество пользователей огромно, например, 1 000 000!!! - person Alireza; 27.12.2009