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 secara aman dan mencegah kecurangan, penting untuk memahami prinsip-prinsip dasar keamanan Roblox. Pengalaman yang aman dibangun di atas pemikiran yang mengantisipasi tindakan musuh. Sebelum menulis satu baris kode pun, Anda harus menginternalisasi prinsip-prinsip dasar ini. Mereka harus mempengaruhi setiap keputusan arsitektur dan desain yang Anda buat.

Jangan pernah mempercayai klien

Ini adalah prinsip dasar. Seorang penipu yang bertekad memiliki kontrol penuh atas keadaan lokal dan lalu lintas jaringan mereka. Karena penipu memiliki level kontrol ini, segala langkah keamanan yang mengandalkan penegakan sisi klien pada akhirnya akan dilewati. Ini bukanlah batasan dari Roblox: ini adalah realitas fundamental dari arsitektur klien-server. Anggaplah setiap potongan data yang dikirim dari klien telah dimanipulasi, dibuat, atau dikirim dengan niat jahat. Ini termasuk kemampuan untuk:

  • Mendekompilasi setiap LocalScript atau ModuleScript yang direplikasi, bahkan jika mereka tidak pernah dijalankan di klien
  • Mengambil kepemilikan jaringan dari karakter mereka dan bagian yang tidak terikat
  • Memicu peristiwa yang dimulai oleh klien seperti peristiwa Touched atau aktivasi ProximityPrompt pada jarak atau frekuensi mana pun
  • Memodifikasi posisi pemain mereka, fisika, atau interaksi dengan dunia
  • Mengirim atau memicu RemoteEvents dan RemoteFunctions pada frekuensi apa pun dengan argumen sembarang (selain argumen Pemain pertama)
  • Mengubah apa pun di DataModel lokal mereka tanpa memicu peristiwa yang diharapkan
  • Mengubah perilaku kode yang berjalan secara lokal secara sembarangan

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

Kewenangan server

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

Peran server adalah untuk:

  • Menerima input dari klien
  • Memvalidasi bahwa tindakan yang diminta mungkin dan diizinkan
  • Menjalankan tindakan dan memperbarui status otoritatifnya
  • Mereplikasi hasilnya kepada semua klien yang relevan

Sebagai contoh, jika seorang pemain mengatakan "Saya ingin membeli Bloxy Cola", server harus mengetahui harga sebenarnya dari barang 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 pengalaman Anda sejak awal, alih-alih mencoba menambahkannya kemudian sebagai pemikiran setelahnya.

  • Model ancaman setiap fitur baru. Untuk setiap fitur baru, tanyakan
    • Bagaimana seorang penyerang bisa mengeksploitasi ini jika mereka memiliki kontrol penuh atas klien mereka?
    • Jika klien dapat mengirim nilai apa pun untuk parameter yang digunakan dalam fitur, apa hasil terburuk yang mungkin?
    • Apa yang terjadi jika fitur ini digunakan 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 secara layak oleh fitur ini?
    • Apa informasi internal minimum atau status yang perlu saya ekspos untuk fitur ini?
  • Pisahkan tanggung jawab lebih awal. Pertahankan 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.