Есть ли способ проверить данные GPS-местоположения, полученные от клиента?

Ответ на этот вопрос может быть «НЕТ», но это очень важно, поэтому я думаю, что я мог бы также спросить.

Это должно быть проблемой для всех клиент-серверных игр, ориентированных на местоположение, где места игроков в мире играют центральную роль в игровом процессе. Можно ли каким-либо образом убедиться, что данные местоположения, поступающие с клиента, реальны (т. Е. На самом деле игрок)?

Работая над клиент-серверными играми, мы все знаем, что мы никогда не должны доверять любой информации, поступающей от клиента, и поэтому вся важная логика игры должна выполняться на стороне сервера. Однако с информацией о местоположении мы ДОЛЖНЫ получить это от клиента. Есть ли способ дважды проверить это, чтобы предотвратить обман?

9 голосов | спросил Jamornh 7 PM000000110000002531 2012, 23:57:25

4 ответа


10

Вы можете использовать службу геолокации IP для получения приблизительного местоположения, откуда подключается пользователь. Сравните это с полученными GPS-данными, и вы можете избавиться от некоторых крайних случаев (игроки подключаются через прокси и т. Д.). Вы даже можете рассчитать расстояния между входами пользователей и, если они слишком высоки (например, местоположение, перемещенное на 1000 км между двумя входами через 5 или 10 минут), уведомит пользователя.

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

ответил r2d2rigo 8 AM000000120000000631 2012, 00:22:06
10

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

IP содержит информацию о маршрутизации и, таким образом, указывает на местоположение. Но игроку просто нужен прокси и кричит ... IP-подсказки в совершенно другом месте, чем на самом деле.

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

ответил API-Beast 8 AM000000120000003631 2012, 00:14:36
3

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

Например, на телефонах Android у вас разных поставщиков местоположения , например, поиск пользователя ближайшими мобильными телефонами, системой позиционирования Wi-Fi и т. д. Вы можете потребовать, чтобы по крайней мере два провайдера местоположения возвращали похожие значения, чтобы доверять более точным из двух.

Я бы не рекомендовал использовать геолокацию IP; здесь, в Великобритании, это безнадежно неточно, поскольку большинство из нас используют национальные интернет-провайдеры. В хороший день объявления, ориентированные на геотаргетинг, относятся к местам около 20 миль, а в плохой день они думают, что я в 100 милях отсюда. Но вы, вероятно, можете использовать его для проверки того, что пользователь находится в правильной стране!

ответил Kylotan 8 PM00000010000001431 2012, 13:14:14
1

Нет. Ни за что. Даже в теории.

ответил ddyer 8 AM000000120000001631 2012, 00:13:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132