Apakah ada cara untuk memverifikasi data lokasi GPS yang diterima dari klien?

9

Jawaban untuk pertanyaan ini mungkin "TIDAK" tetapi itu cukup penting jadi saya pikir saya mungkin juga bertanya.

Ini seharusnya menjadi masalah untuk semua game yang menyadari lokasi-server klien di mana lokasi pemain di dunia adalah pusat dari gameplay. Apakah ada cara kita dapat memastikan bahwa data lokasi yang berasal dari klien itu nyata (yaitu pemain sebenarnya ada di sana)?

Bekerja pada gim client-server, kita semua tahu bahwa kita tidak boleh mempercayai informasi apa pun yang berasal dari klien dan oleh karena itu semua logika gim penting harus dilakukan di sisi server. Namun dengan informasi lokasi, kami HARUS menerima ini dari klien. Apakah ada cara untuk memeriksa ulang ini untuk mencegah kecurangan?

Jamornh
sumber

Jawaban:

10

Anda dapat menggunakan layanan geolokasi IP untuk mendapatkan perkiraan lokasi dari mana pengguna terhubung. Bandingkan ini dengan data GPS yang diterima dan Anda dapat menyingkirkan beberapa kasus ekstrem (pemain yang menghubungkan melalui proxy, dll.). Anda bahkan dapat menghitung jarak antara login pengguna dan jika mereka terlalu tinggi (katakanlah, lokasi bergerak 1000 km antara dua upaya login dalam 5 atau 10 menit) beri tahu pengguna.

Namun ini tidak mudah dan Anda akan menyebabkan lebih dari satu ketidaknyamanan bagi pemain yang sah.

r2d2rigo
sumber
Terima kasih, saya pikir saya akan memeriksa cek IP serta lokasi delta antara login / check-in dengan server. Ini pasti akan menimbulkan masalah bagi pemain yang sah jika kita mengandalkan deteksi otomatis dan larangan ... Saya pikir saya hanya akan menandainya untuk review admin dan memberikan beberapa batasan yang murah hati; kita mungkin akan berurusan dengan masing-masing bendera berdasarkan kasus per kasus (berharap jumlahnya cukup rendah untuk menjadi praktis.)
Jamornh
GeoLocation cukup akurat; Anda seharusnya tidak memiliki masalah ... tergantung pada rincian yang Anda inginkan.
Vaughan Hilts
10

Tidak ada di sisi klien yang tidak dapat dipalsukan, semua yang dimiliki seseorang dapat dimanipulasi.

IP berisi informasi perutean dan dengan demikian mengisyaratkan lokasi. Tetapi pemain hanya membutuhkan proxy dan whoops ... IP mengisyaratkan lokasi yang sama sekali berbeda dari pemain sebenarnya.

Percayalah pada pemain Anda, jangan beri mereka alasan untuk mencoba menipu sistem sejak awal.

API-Beast
sumber
Saya setuju dengan mempercayai pemain dan tidak memberi mereka alasan untuk menipu sistem. Seharusnya lebih nyaman untuk mengikuti sistem untuk mencapai sesuatu daripada meluangkan waktu untuk mengelabui untuk melakukan hal yang sama. Tetapi beberapa pemain akan selalu menemukan alasan untuk melakukan hal-hal yang tidak seharusnya mereka lakukan, ah well, saya berharap angka itu sangat rendah jika sistem dirancang dengan baik.
Jamornh
3

Anda tidak dapat benar-benar memverifikasi informasi ini lebih daripada Anda benar-benar dapat memverifikasi informasi apa pun yang dibuat oleh sumber eksternal. Jadi apa yang Anda inginkan secara teori tidak mungkin. Tapi Anda mungkin bisa membuatnya sedikit lebih sulit untuk dipalsukan.

Misalnya, pada ponsel Android Anda memiliki berbagai penyedia lokasi , seperti mencari pengguna dengan tiang ponsel terdekat, sistem posisi Wi-Fi, dll. Anda bisa meminta setidaknya dua penyedia lokasi mengembalikan nilai yang sama untuk mempercayai yang lebih tepat. di antara dua.

Saya tidak akan merekomendasikan menggunakan geolokasi IP; di sini di Inggris sangat tidak akurat karena sebagian besar dari kita menggunakan ISP nasional. Pada hari yang baik, iklan dengan penargetan geografis merujuk ke lokasi sekitar 20 mil jauhnya, dan pada hari yang buruk mereka berpikir saya berjarak 100 mil. Tetapi Anda mungkin dapat menggunakannya untuk memverifikasi bahwa pengguna berada di negara yang tepat!

Kylotan
sumber
Terima kasih atas jawaban ini. Saat Anda merujuk ke "penyedia lokasi" Saya menganggap Anda berbicara API lokasi Android dan perangkat keras apa yang digunakannya untuk menghitung lokasi. Ini akan membuat sedikit lebih sulit bagi orang yang mencoba memalsukan lokasi (harus memberikan nilai 2-3 bukannya 1) tetapi karena mereka memberikan nilai palsu, ini seharusnya tidak menimbulkan banyak pekerjaan tambahan bagi mereka untuk memotong (menyediakan nilai-nilai palsu tambahan.) Sepenuhnya setuju dengan poin Anda pada geolokasi IP, tidak cukup granular tetapi bagus untuk verifikasi kasar :) Terima kasih atas bantuannya!
Jamornh
Ya, sama sekali tidak ada cara untuk menghentikan pelaporan nilai-nilai palsu dari klien - yang dapat Anda lakukan hanyalah berharap mempersulitnya.
Kylotan
1

Tidak, tidak mungkin. Bahkan tidak dalam teori.

ddyer
sumber