Подтвердить что ты не робот

Как безопасно представить высокий балл в игре переднего конца, чтобы предотвратить увольнение после угона

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

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

** После начала игры отправьте идентификатор сеанса, который истекает через определенное количество времени, которое будет отправлено на сервер для проверки

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

** Контрольные точки в игре, которые отправляют на сервер, чтобы проверить, что человек фактически играет в игру

снова это может быть синтезировано с помощью хитрых скриптов

4b9b3361

Ответ 1

Загрузите повтор игры и проверьте счет на этом воспроизведении на сервере. Конечно, это работает, только если ваша игра поддерживает повторы.

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

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

Но в конце, если пользователь пишет бота, он становится очень тяжелым.

Ответ 2

Невозможно предотвратить манипулирование клиентской стороной. Он контролируется игроком, и он может внести тонкие изменения в клиентскую логику приложения, которая не будет обнаруживаться на стороне сервера. Единственное решение, о котором я знаю, - это отправить все действия пользователя на сервер (все сразу в конце игры или непрерывно во время игры) и проверить сервер (пересчитать счет). Если действия приводят к результату, который пользователь заявляет, что он достиг, то принимают оценку. Если действия не совпадают с результатом - отклоните. Создавать поддельные действия, логически последовательные, будет намного сложнее. Однако это не помешает всем способам обмана (google для "нацеливания прокси", что-то подобное может быть возможно и в вашей игре).

Ответ 3

Сделайте это... возьмите свой идентификатор сеанса с сервера, объедините его с чем-то в игре и используйте его как ключ шифрования, затем в своих данных отправки отправьте любые данные, которые вы хотите +, метку времени или что-то еще с контрольных точек в игре

Возможно использовать идентификатор контрольной точки SessionID + для ключа шифрования

Ответ 4

Что-то вроде этого:

  • Попросите сервер отправить неэкс - "hash-signed" по секретному ключу сервера и метке времени и т.д.,
  • Имейте хэш на основе некоторых внутренних структур данных + клиентский ключ и периодически отправляйте его на сервер
  • Сделайте это через SSL

И @iamkrillin избил меня до этого... но я все равно опубликую его:)