Katakanlah saya berencana, di masa depan (tidak sekarang! Ada banyak yang harus saya pelajari terlebih dahulu) ingin berpartisipasi dalam proyek grup yang akan membuat game online multiplayer besar-besaran (mmo), dan pekerjaan saya adalah jaringan bagian. Saya tidak begitu terbiasa dengan pemrograman jaringan (saya sudah membaca buku yang sangat mendasar tentang PHP, MYSQL dan saya sedikit mengacaukan WAMP ).
Dalam proses belajar PHP dan MYSQL, haruskah saya melihat peretasan? Meretas seperti pada pemindaian port, peretasan router, dll. Dalam MMO, orang selalu mencoba menipu, bot, dan sebagainya, tetapi skenario terburuknya adalah seseorang meretas basis data. Ini hanya konsepsi saya tentang ini, saya benar-benar tidak tahu. Namun saya mengerti jaringan dengan cukup baik, seperti subnetting / ports / IP (lokal / global) / dll.
Menurut pendapat profesional Anda, (Jika Anda memahami topiknya, beri tahu saya) Perlukah saya mempelajari hal-hal ini untuk menghadapi kemungkinan terjadinya hal ini?
Juga, dari hal-hal yang saya sebutkan (port scanning, peretasan router) Apakah ada hal lain yang berhubungan dengan peretasan yang harus saya perhatikan? Saya tidak terlalu terbiasa dengan aspek jahat / Keamanan dalam Jaringan.
Dan sebuah catatan: Saya bukan anak kecil yang mencoba belajar cara meretas. Saya hanya ingin belajar sebanyak mungkin sebelum kuliah, dan saya benar-benar perlu tahu apakah saya perlu belajar ini atau tidak.
sumber
Jawaban:
Ya, seseorang (pada kenyataannya, beberapa sistem) di tim yang mengembangkan game multipemain apa pun, terlepas dari skala, harus memiliki pengetahuan yang kuat tentang konsep keamanan jaringan baik di tingkat perangkat keras maupun perangkat lunak.
Ini terutama berlaku untuk gim yang akan melibatkan banyak kegigihan agensi, karena itu merupakan investasi dari pemain dan akibatnya adalah sesuatu yang membuat target yang menguntungkan bagi peretas.
Mengambil kelas jaringan / keamanan jaringan / keamanan umum (kriptografi, dan lain-lain) di perguruan tinggi akan sangat membantu dalam memberikan Anda beberapa latar belakang pengetahuan yang diperlukan untuk menjadi salah satu pengembang tersebut.
sumber
Mengetahui sesuatu tentang keamanan adalah ide yang baik sebelum mencoba menulis permainan multi-pemain, tetapi hal-hal seperti pemindaian port dan peretasan router, atau bahkan kriptografi, bukanlah yang seharusnya Anda perhatikan pada tahap ini.
Sebaliknya, hal-hal yang harus Anda pelajari adalah kepercayaan , validasi , dan kekokohan . Mengetahui sedikit tentang psikologi, terutama tentang tantangan dan penghargaan, bukanlah hal yang buruk juga. Saya benar-benar tidak bisa mengajari Anda banyak hal dalam jawaban singkat seperti ini, tetapi berikut adalah beberapa tips untuk Anda mulai dengan pemrograman aman:
Perlakukan input apa pun dari luar kendali langsung Anda seolah-olah itu tidak seperti yang Anda harapkan. Itu termasuk semua input pengguna, apa pun yang Anda terima melalui jaringan, dan bahkan apa pun dari bagian lain dari basis kode Anda. Cobalah untuk masuk ke dalam pola pikir tidak berpikir tentang apa yang input harus mengandung, atau bahkan tentang apa yang penyerang mungkin memberi makan Anda malah, tetapi hanya tentang apa yang input bisa mungkin terjadi dan cara aman menangani masukan yang mungkin Anda mungkin mendapatkan.
Karena Anda menyebutkan PHP dan MySQL, mulailah dengan melihat injeksi SQL dan serangan skrip lintas situs . Jika Anda juga terbiasa dengan bahasa tingkat rendah seperti C, lihat serangan buffer overflow . Jangan hanya berpikir tentang cara mencegahnya - pikirkan bagaimana Anda akan menulis kode Anda sehingga kesalahan seperti itu tidak bisa terjadi, baik secara kebetulan atau melalui kedengkian. Bahasa pemrograman Anda hampir pasti memiliki alat untuk membiarkan Anda melakukan itu, jika Anda baru belajar menggunakannya sebagaimana mestinya.
Dalam gim multi-pemain, Anda mungkin akan menjalankan beberapa kode klien di komputer pemain. Terbiasa dengan gagasan bahwa pengguna yang cukup cerdas dan bertekad akan selalu dapat kompromi kode tersebut dan membuatnya melakukan apa yang mereka inginkan. Jangan percayai klien , jika Anda bisa menghindarinya. Jika Anda tidak dapat menghindarinya, pastikan untuk hanya memercayainya sejauh yang Anda perlukan.
Usahakan untuk tidak menaruh semua telur Anda dalam satu keranjang. Jika Anda tidak dapat menjalankan game, situs web, dan basis data di server yang berbeda, setidaknya jalankan di bawah akun yang berbeda, dan pastikan tidak ada satu pun dari mereka yang memiliki akses lebih banyak satu sama lain daripada yang mereka butuhkan. Oke, mungkin gim dan situs web Anda memerlukan akses ke basis data pengguna Anda, tetapi mereka tentu saja tidak memerlukan akses admin untuk itu, bukan? Mungkin mereka bahkan tidak memerlukan lebih dari sekedar akses baca saja . Paling tidak, bahkan jika Anda tidak menerapkan kompartementalisasi seketat itu untuk memulai, rancang game Anda sehingga dapat diterapkan nanti - jangan membuat server game Anda memerlukan akses admin ke database. Ingat bahwa semua perangkat lunak memiliki bug, dan cepat atau lambat seseorang akan melakukannya temukan celah keamanan di hatimu.
Secara umum, hal yang harus disadari tentang keamanan adalah bahwa itu adalah pola pikir . Ini bukan tentang mengetahui kata kunci keamanan terbaru, atau tentang bagaimana serangan terbaru bekerja atau tentang mencoba mengantisipasi apa yang akan dilakukan peretas sebelum mereka melakukannya (walaupun semua hal itu mungkin ada gunanya).
Pemrograman yang benar-benar aman adalah tentang mempelajari cara menggunakan alat yang Anda miliki dengan cara yang seharusnya digunakan, tentang membagi kode Anda menjadi potongan-potongan yang cukup kecil sehingga Anda dapat memahami apa yang mereka lakukan (dan memastikan mereka melakukannya dengan benar, bahkan jika bagian lain dikompromikan), dan tentang menulis kode Anda untuk mengharapkan yang tak terduga. Jika Anda melakukan semua itu, Anda tidak perlu tahu peretas apa yang mungkin mencoba, karena Anda akan siap untuk apa pun.
sumber
Secara pribadi, saya tidak akan khawatir tentang hacker belum .
Alasannya sederhana: Anda tidak akan mendapatkan peretas / penipu sampai Anda permainan yang cukup populer; yaitu sepadan dengan waktu untuk hack / cheat. Tunggu hingga Anda memiliki gim yang didirikan terlebih dahulu dan pendapatan masuk untuk mendanai hal-hal semacam itu.
Anda dapat menghabiskan banyak waktu (maksud saya, banyak) waktu untuk mengelabui pembuktian kode Anda agar tidak dapat diretas atau ditipu. Atau Anda bisa melakukan pencadangan di luar kantor (yang seharusnya Anda lakukan) dan membuat titik pemulihan reguler. Ketika eksploitasi terjadi, tutuplah.
sumber