Jangan hanya mengirim skor integer ke server. Kirim koleksi statistik permainan yang dapat digunakan untuk memverifikasi skor itu realistis. Atau Anda dapat menerapkan beberapa kunci yang dibagikan sebelumnya untuk menghitung skor. Anda bisa mengirim skor dan statistik tambahan di seluruh permainan dan memastikan bahwa kenaikannya masuk akal.
Namun, saya tidak akan terlalu khawatir tentang hal itu. Saran di atas akan membuatnya lebih sulit, tetapi bukan tidak mungkin untuk mengirim skor palsu. Namun, jika Anda hanya membuatnya sedikit sulit, sebagian besar orang yang memainkan permainan Anda tidak akan tertarik untuk mencoba menipu itu.
Berhati-hatilah dengan bagaimana Anda mengizinkan gim Anda berkomunikasi dengan server Anda. Anda tidak ingin game Anda menjadi titik masuk ke server Anda untuk peretasan. Pastikan Anda selalu memvalidasi input Anda dan tidak pernah mempercayai klien.
Seperti yang dikatakan Byte56: "jangan pernah mempercayai klien", tetapi:
Jangan pernah mempercayai klien datang dengan harga:
Memiliki semua game yang dimainkan di server akan meningkatkan biaya infrastruktur Anda banyak.
Dengan asumsi sebagian besar pemain tidak akan menyontek
dan skor tertinggi akan diselesaikan setelah beberapa saat dan berhenti banyak berubah
ada jalan tengah.
Rekam game (di klien).
(Tergantung pada jenis gim yang mungkin super mudah (mis. Catur) atau sedikit rumit (misalnya FPS multipemain),
tetapi selalu bisa dilakukan.)
Ketika seorang pemain menyelesaikan permainan, cukup kirimkan skor.
Jika skor berada dalam kisaran tertentu di atas (mis. 1% atau 5 teratas),
minta data yang direkam dari pemain
dan ulangi permainan itu di server.
Jika skor cocok, terima skor.
Dengan cara ini Anda tidak memerlukan sumber daya sisi server tambahan untuk sebagian besar permainan,
tetapi dapat memastikan skor teratas valid.
sumber
Jangan khawatir tentang hal itu; melindungi dari semua serangan pada dasarnya tidak mungkin jika Anda mempercayai klien. Jika tidak ada yang menggunakan Fiddler dll, untuk memodifikasi permintaan AJAX, mereka dapat menjalankan JS debugger dan memodifikasi data gim Anda untuk memberi mereka 1000 kehidupan, dll, atau memodifikasi kode Anda, atau melakukan 100 hal lain yang belum Anda pikirkan.
Saya menulis permainan seperti itu beberapa tahun yang lalu, dan sejauh yang saya tahu, tidak ada yang menipu dengan cara ini. Tidak ada hadiah, kecuali memiliki nama Anda di tabel skor.
sumber
Kurangi motivasi sosial untuk berbuat curang dengan menggunakan papan peringkat sosial (menipu hanya membuat Anda terlihat baik di segelintir teman, itu tidak merusaknya untuk semua orang).
Verifikasi di server. Joel Poloney memiliki artikel teknik yang baik di Game Developer 2012 September "Scale Your Online Game"
sumber
Saat Anda ingin membuat game online yang anti-cheat, Anda harus menangani semua logika game di server. Segala sesuatu yang terjadi di sisi klien dapat dikontrol dan dimanipulasi oleh pengguna. Ada teknik seperti enkripsi atau kebingungan yang bisa Anda coba, tetapi pada akhirnya itu semua hanya keamanan melalui ketidakjelasan yang dapat dielakkan oleh seseorang yang cukup ditentukan.
Memang, gim yang berjalan di server jauh lebih rumit untuk dikembangkan, membutuhkan lebih banyak sumber daya di sisi server dan latensi jaringan merugikan pengalaman gim (terutama untuk gim yang bergerak cepat), tetapi itu satu-satunya cara untuk secara efektif mencegah pemain dari kecurangan.
sumber