Bagaimana aku bisa menjelaskan injeksi SQL pada nenek ku?

Dilihat 1,62 rb • Ditanyakan sekitar 2 tahun lalu
1 Jawaban 1

Apa kalian sadar kalau di Amerika, mereka sudah mulai memainkan musik Natal di toko-toko? Walaupun kurasa masih terlalu awal untuk merayakan musim liburan, waktunya itu membuatnya patut untuk analogiku kalau aku akan menggunakannya untuk menjelaskan ke semua nenek diluar sana tentang bagaimana injeksi SQL bekerja. Biarkan aku memberimu tiga karakter utama dalam ceritaku:

  • Programmer- dimainkan oleh Santa Claus
  • Program- dimainkan oleh kepala peri
  • Cracker (istilah yang benar untuk hacker dengan niat buruk)- dimainkan oleh Grinch

Grinch dengan sempurna mewujudkan niat cracker—dia ingin merusak Natal dan mencuri semua hadiah Natal di dunia. Dalam analogi ini, Natal adalah aplikasi situs mu dan semua hadiah Natal yang berharga itu semua adalah data penting aplikasi situs—nomor kartu kredit pelanggan, Pll, data pribadi, dll. Hanya demi cerita ini, mari percaya kalau orang-orang datang ke Santa untuk mengambil hadiah mereka daripada ia datang ke rumah setiap orang. 

Suatu hari, di Hari Natal, Santa menyiapkan semua hadiah-hadiah untuk anak-anak di dunia. Sekarang, ia menugaskan kepala peri tugas memberikan hadiah masing-masing satu yang mengatakan nama mereka ke peri. Santa berkata pada peri, "Ambil hadiah untuk ( ), dan isi yang kosong dengan nama anak apapun yang kamu layani." Kepala peri melakukan sama seperti yang disuruh dan anak-anak datang dan memberikan nama-nama mereka ke kepala peri secara pribadi dan masing-masing dari mereka mendapatkan hadiahnya. Namun, Grinch datang berpenampilan anak-anak (karena tentu saja tidak ada yang mau menerima Grinch kalau merkeka mengenalnya!) dan dia mengatakan, "Namaku adalah Semua Orang." Peri tidak siap untuk situasi ini karena Santa mengatakan untuk hanya memberikan hadiah pada anak-anak yang sudah teridentifikasi. Peri pun kebingungan dan kewalahan—jadi dalam keadaan nya itu—Grinch pun mengambil semua hadiah.

Inilah sebuah injeksi SQL. Program mencoba untuk memberikan set data untuk pengunjung tertentu, tapi cracker dapat mencari kelemahan dalam programming dan memanipulasi program untuk memberikannya akses semua data. Tapi, inilah pintarnya—sebut saja ketika Grinch ditanyakan namanya oleh peri, dan daripada dia mengatakan "semua orang," dia mengatakan,"Grinch dan bakar semua hadiah." Sekarang, peri tidah hanya memberikan hadiah untuk Grinch (walaupun aku agu dia akan punya satu), tapi dia juga akan membakar sisa hadiahnya.

Jadi, bagaimana cara programmer terlindung dari injeksi SQL? Yaa, mereka mencoba untuk membuat program karakter spesial kabur (artinya mengabaikan karakter yang tidak diharapkan untuk menjawab) dalam aplikasi situs. Misalnya, Santa berkata pada peri,"Kamu tidak boleh menghancurkan hadiah apapun. Dan juga, hanya memberikan satu hadiah per orang." Jadi, ketika Grinch datang dan meminta semua hadiah atau mengatakan "Grinch dan akar semua hadiah," peri tidak akan membuat kesalahan. Sulit untuk mencari semua kelemahan dalam suatu program, itulah kenapa banyak perusahaan besar mendedikasikan programmer yang bekerja untuk mencari dan menyembuhkan kelemahan ini. Pilihan lain untuk perusahaan untuk mengurangi resiko ini adalah untuk menggunakan sistem firewall yang canggih yang menghalangi lalu lintas yang berbahaya dari aplikasi situs alias Santa mempekerjakan pengawal yang kuat berjaga didepan toko hadiah dan mereka mengecek kartu identitas semua peserta untuk memastikan tidak ada Grinch apapun yang bisa masuk.

Perusahaan besar menghabiskan ribuan dolar untuk memelihara sistem firewall ini, tapi aku menemukan bisnis kecil itu bisa menguntungkan dari sistem firewall aplikasi situs (WAF) sering kali untuk mencegah injeksi SQL. Tentu saja ini pastinya direkomendasikan untuk bekerja dalam memastikan kalau program aplikasi situs mu untuk membatasi kelemahan, atau sebentar lagi, kamu akan berakhir memberikan banyak hadiah ke Grinch.

Terjawab sekitar 2 tahun lalu
Kau memiliki jawaban yang lebih baik?
Tulis jawaban sekarang