Taktik keamanan dan mitigasi kecurangan

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Sebelum menyelami taktik spesifik untuk mengembangkan dengan aman dan mencegah kecurangan, penting untuk memahami prinsip-prinsip dasar keamanan Roblox. Permainan yang aman dibangun di atas pola pikir yang mengantisipasi tindakan yang merugikan. Sebelum menulis satu baris kode pun, Anda harus menginternalisasi prinsip-prinsip dasar ini. Prinsip-prinsip ini harus memengaruhi setiap keputusan arsitektur dan desain yang Anda buat.

Jangan pernah percaya pada klien

Ini adalah prinsip dasar. Seorang penipu yang gigih memiliki kontrol penuh atas keadaan lokal dan lalu lintas jaringan mereka. Karena penipu memiliki tingkat kontrol ini, setiap langkah keamanan yang bergantung pada penegakan sisi klien pada akhirnya akan dilewati. Ini bukanlah batasan dari Roblox: ini adalah kenyataan mendasar dari arsitektur klien-server. Anggap setiap potongan data yang dikirim dari klien telah dimanipulasi, dipalsukan, atau dikirim dengan niat jahat. Ini termasuk kekuatan untuk:

  • Mengkompilasi ulang setiap LocalScript yang direplikasi atau ModuleScript, bahkan jika mereka tidak pernah dijalankan di klien
  • Mengambil kepemilikan jaringan dari karakter mereka dan bagian yang tidak terikat
  • Memicu peristiwa yang diinisiasi klien seperti peristiwa Touched atau aktivasi ProximityPrompt pada jarak atau frekuensi apa pun
  • Mengubah posisi pemain mereka, fisika, atau interaksi dengan dunia
  • Memicu atau memanggil RemoteEvents dan RemoteFunctions pada frekuensi apa pun dengan argumen sewenang-wenang (selain argumen Pemain pertama)
  • Mengubah apa pun di DataModel lokal mereka tanpa memicu peristiwa yang diharapkan
  • Mengubah perilaku kode yang berjalan secara lokal secara sewenang-wenang

Karena hal ini, semua logika kritis harus divalidasi di sisi server atau dijalankan secara eksklusif di server. Konsekuensi dari kontrol ini dijelaskan secara rinci dalam Kepemilikan Jaringan, Validasi Gerakan, dan Eksploitasi Fisika dan Kontrol Akses dan Kerahasiaan.

Otoritas server

Server harus menjadi sumber kebenaran utama untuk semua status simulasi, aturan, kemajuan pemain, dan keputusan kritis. Peran klien adalah untuk merender dunia dan mengirimkan input pengguna ke server.

Peran server adalah untuk:

  • Menerima input dari klien
  • Memvalidasi bahwa tindakan yang diminta mungkin dan diperbolehkan
  • Melaksanakan tindakan dan memperbarui status otoritatifnya
  • Mereplikasi hasilnya ke semua klien yang relevan

Sebagai contoh, jika seorang pemain mengatakan "Saya ingin membeli Bloxy Cola", server harus mengetahui harga sebenarnya dari item tersebut, uang pemain, dan jarak fisik karakter pemain dari toko sebelum memvalidasi dan menyetujui transaksi. Sebisa mungkin, status yang akan divalidasi harus dipertahankan secara eksklusif oleh server dan bukan oleh klien. Dalam contoh ini, jika transaksi Bloxy Cola disetujui, server harus mengurangi harga Bloxy Cola dari uang pemain, namun, server tidak selalu dapat mengontrol karakter pemain.

Keamanan dengan desain

Integrasikan pertimbangan keamanan ke dalam desain permainan Anda sejak awal, daripada mencoba menambahkannya kemudian sebagai pemikiran setelahnya.

  • Model ancaman setiap fitur baru. Untuk setiap fitur baru, tanyakan
    • Bagaimana seorang penyerang dapat mengeksploitasi ini jika mereka memiliki kontrol penuh atas klien mereka?
    • Jika klien dapat mengirimkan nilai apa pun untuk parameter apa pun yang digunakan dalam fitur, apa hasil terburuk yang mungkin terjadi?
    • Apa yang terjadi jika fitur ini digunakan lebih dari 1.000 kali per detik? Apa laju maksimum di mana fitur ini harus digunakan?
    • Dapatkah seorang penipu menggunakan ini untuk merusak pengalaman pemain lain?
    • Berapa banyak sumber daya, dalam kasus terburuk, yang dapat digunakan fitur ini secara realistis?
    • Apa informasi atau status internal minimum yang perlu saya ungkapkan untuk fitur ini?
  • Bagilah tanggung jawab lebih awal. Simpan logika dan data di ServerScriptService sejak hari pertama. Jangan pernah menempatkannya di wadah yang direplikasi seperti ReplicatedStorage atau Workspace.
©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.