Отслеживание компьютеров в онлайн-игре - PullRequest
3 голосов
/ 22 мая 2011

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

Итак, моя дилемма в том, что многие пользователи используют прокси или NATd, поэтому некоторые легитимные пользователи будут забанены, если у меня будет только 1 пользователь на ip.

Есть ли способ (с Javascript и PHP), чтобы получить уникальный идентификатор uniq, специфичный для компьютера (без изменений в аппаратном обеспечении, изменение аппаратного обеспечения компьютера, вероятно, изменит идентификатор).

Любая идея или комментарии будут очень полезны


(Следующее было восстановлено из ответа Павла, но удалено другим из-за неуместности.)

Я не могу изменить клиента на многое, потому что это браузерная игра, поэтому получение hwid было бы возможно. Но как с JS или PHP.

Добавлены таймеры и ограничения для предотвращения передачи, но они не останавливают их полностью, есть возможность отправить электронное письмо для исключения IP. но это медленно и утомительно. Мне интересно, есть ли определитель для генерации определенного идентификатора или идентификатора для определенного компьютера (не на основе ip), который позволил бы сделать так, чтобы несколько учетных записей не могли войти в систему с одного компьютера, но могли войти в систему с того же ip

Ответы [ 5 ]

1 голос
/ 22 мая 2011

Поскольку мы говорим о другой учетной записи, возможно, на другом IP-адресе и клиенте, вы не можете легко найти клонированные учетные записи.

Вы можете выбрать еще два варианта эвристики и геймплея

  1. Как и предлагалось ранее (@dqhendricks), разделите свои ресурсы и осуществите совместное использование и т. Д. Таким образом, чтобы вы не могли легко помочь своей другой учетной записи с каждой новой учетной записью. Сделать поиск других учетных записей вначале трудным / невозможным, сделать ресурсы общего доступа более высокоуровневой функцией и т. Д. Недостатком является то, что это меняет игровой процесс, оно не должно быть желательным.
  2. Вы можете выполнять эвристику по поведению. Может быть определенное нежелательное поведение: только взаимодействие с 1 другой учетной записью и т. Д. Вы можете настроить некоторые переменные и т. Д., Но вы можете легко увидеть подозрительное поведение. Сделайте своего рода расчет «баланса». Большинство игровых взаимодействий имеют своего рода баланс. Конечно, лучшие игроки могут иметь хорошую сделку, потому что они знают больше, или наоборот: они заключают плохую сделку, чтобы помочь маленьким игрокам. Но когда один игрок только дает и никогда не берет, он «помогает», не играя сам на себя: это может означать, что это клон

Насколько мне известно, все с ip-адресами или информацией о клиенте ($ _SERVER) и т. Д. В этом случае бесполезно.

0 голосов
/ 22 мая 2011

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

Основная проблема заключается не столько в определении где учетная запись подключена, но может доверять тому, что у пользователя есть только одна учетная запись - и для этого единственное «реальное» решение - это использовать систему, которая уже предоставляеттакого рода информация, такая как кредитная карта или учетная запись PayPal ;-) То есть просто не позволяет кому-либо создать новую учетную запись (хотя учетная запись может иметь несколько псевдонимов / профилей, но их можно легко отследить) если они не могут доказать «уникальность».

(Также учтите, что два человека могут иметь две разные учетные записи на одном компьютере.)

Удачное кодирование.

0 голосов
/ 22 мая 2011

Я также запускаю сервер онлайн-игр.Чтобы избежать вашей дилеммы, либо измените игровой клиент, чтобы он считывал MAC-адрес, и разрешите только одну учетную запись на компьютер.Или зарегистрируйте ip и разрешите ресурсы, которые будут переданы этому ip дважды.3-й вариант: не разрешать передачу материалов с одного и того же IP-адреса. 4-й вариант: добавить таймер при передаче ресурсов, заставить их подождать 10 минут игрового процесса, прежде чем они смогут что-то сделать, например, избавиться от предметов, чтобы другие могли их получить

0 голосов
/ 22 мая 2011

{общие ресурсы} = {общее количество ресурсов} - MAX (({начальные ресурсы} - {потраченные ресурсы}), 0)

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

0 голосов
/ 22 мая 2011

Вы можете запретить несколько входов в одну и ту же учетную запись (имя пользователя / пароль).

Если проблема заключается в том, что они создают несколько учетных записей с множеством разных адресов электронной почты и т. Д. И новыми именами пользователей и паролями, тогда вы можетебыть в состоянии сделать это с помощью файлов cookie, например, которые используют уникальный идентификатор оборудования, и затем вы просто проверяете, что не более одной учетной записи одновременно активны на основе этого hwid.если аппаратное обеспечение меняется, это не имеет значения, поскольку оно относительно.

Чтобы уточнить, является ли идентификатор HW для первого входа в систему 1234, тогда второй вход в систему генерирует такой же hwid.Если вы проверите файлы cookie или свою базу данных (не имеет значения, где вы их храните) для того же hwid, то вы знаете, что он уже вошел в систему.

Если аппаратное обеспечение меняется, это не имеет значения, так как они все равно будут генерировать одинаковый hwid.,

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

...