Apa yang korang perlu tahu tentang SQL Injection - Jom study

8 min read

Apa itu SQL Injection?

SQL Injection adalah salah satu teknik hacking yang membolehkan hacker untuk ‘menyuntik’ arahan SQL yang tak diundang masuk ke dalam database website.

Ini membolehkan hacker untuk masuk access kedalam data korang, modify, atau boleh je delete data data korang yang penting.

Cara SQL Injection ni berfungsi adalah melalui input yang tak disanitize, contohnya melalui form login atau search fields. Kalau website tak boleh handle input ni dengan betul, hacker boleh masukkan arahan SQL yang boleh ubah cara database berfungsi.

Teknik ni sangat bahaya sebab boleh expose data sensitif korang seperti password dan info peribadi.

Bagaimana SQL Injection berfungsi?

Hacker akan mencari lubang melalui web yang boleh menerima input dari user. Mereka akan gunakan input fields ini untuk masukkan arahan SQL yang tak sepatutnya ada.

Contoh, mereka boleh guna kod macam ' OR '1'='1 untuk bypass authentication. Benda ni of course la kan sangat berbahaya sebab benda ni boleh buat hacker dapat access kedalam sebuah portal tanpa perlukan password, dan dari situ, mereka boleh curi, modify, atau delete data korang dalam database.

Kenapa SQL Injection berbahaya?

SQL Injection ni boleh dikatakan sangat berbahaya sebab boleh compromise keseluruhan database.

Bayangkan semua maklumat penting ada dalam database – password, info peribadi, financial records – dan semuanya boleh dicuri atau diubah.

Benda ni bukan kehilangan data semata mata, tapi juga soal kepercayaan user dan reputasi sebuah syarikat. Kalau data bocor, syarikat boleh rugi besar, dan akan bermasalah dari segi kewangan dan reputasi.

Siapa yang selalu jadi mangsa?

Mangsa SQL Injection biasanya adalah website atau aplikasi yang ada database dan terima input dari user.

Ini termasuklah website e-commerce, forum online, dan aplikasi yang guna form untuk collect data user. Small businesses biasanya akan menjadi target sebab mereka mungkin tak ada resources yang cukup untuk implement strong security measures pada portal sendiri.

Tujuan hacker buat SQL Injection

Hacker buat SQL Injection dengan beberapa tujuan:

  • Curi data: Ini yang paling common. Hacker nak data korang supaya hacker boleh jual atau digunakan untuk fraud.
  • Sabotage: Untuk rosakkan reputasi syarikat atau website.
  • Challenge: Ada yang buat sebab nak test skill, atau sebab suka-suka. Mungkin juga sebab nak glamer.

Pasal SQL database

SQL database adalah tempat untuk user menyimpan data secara structured dalam bentuk tables dengan menggunakan bahasa SQL (Structured Query Language) untuk manage data.

Contoh database yang famous adalah MySQL, PostgreSQL, dan Microsoft SQL Server. Kelebihan SQL database adalah dia boleh handle large amounts of data dan support complex queries, ini yang menjadikannya sebagai pilihan utama untuk aplikasi web.

Kelebihan SQL Injection untuk hacker

Bagi hacker, SQL Injection boleh bagi mereka:

  • Access: Full access ke database.
  • Control: Kadang-kadang, hacker boleh hijack keseluruhan portal bila dah dapat control database.
  • Anonymity: Hacker boleh hide identity mereka, susah sangat nak trace.

Macam mana SQL Injection berlaku dalam teknikal?

Dari segi teknikal, SQL Injection berlaku bila aplikasi web tu tak properly escape special characters, contoh macam ni:

  • Apostrophe (‘)
  • Quotation mark (“)
  • Semicolon (;)
  • Backslash ()
  • Forward slash (/)

Bila special characters ini tak di-escape, hacker dapat memasukkannya special characters ke dalam input dan mengubah SQL statement. Antara contoh manipulasi yang hacker boleh buat:

  • Mengubah WHERE clause: Hacker dapat memasukkan input tambahan untuk mengambil data yang tak sepatutnya mereka akses.
  • Tambah DROP TABLE statement: Hacker boleh delete table database.
  • Tambah INSERT INTO statement: Hacker dapat tambah dan modify data palsu ke dalam database.

Benda ni boleh berlaku melalui simple input fields atau melalui more complex methods macam cookie manipulation atau even HTTP headers.

Cara-cara nak prevent SQL Injection

Untuk prevent SQL Injection ni berlaku kepada korang, korang boleh:

  • Gunakan prepared statements: Ini adalah cara coding yang lebih secure yang menghalang SQL Injection.
  • Sanitize user input: Ini melibatkan pembersihan input dari user untuk pastikan tak ada characters yang boleh lead to SQL Injection.
  • Least privilege principle: Ini bermaksud memberi user database hanya access yang mereka perlukan untuk perform tasks mereka, dan tak lebih dari itu.

Langkah-langkah tambahan untuk prevent SQL Injection

Selain dari yang disebut tadi, korang juga boleh:

  • Regular audits: Ini melibatkan pemeriksaan berkala pada aplikasi web untuk vulnerabilities.
  • Error monitoring: Ini melibatkan pemantauan logs untuk any unusual activity yang mungkin indicate attempt SQL Injection.
  • Security plugins: Ini adalah tools tambahan yang boleh dipasang pada aplikasi web untuk help detect dan prevent SQL Injection.

Penutup

SQL Injection satu ancaman yang besar untuk korang yang sedang membangunkan portal atau apps. tapi dengan langkah-langkah pencegahan yang betul, korang boleh je jaga database dan data korang dari SQL Injection ni. Ilmu ni penting, jadi share dengan semua yang perlu tahu tentang perkara ni.

Adakah artikel ni membantu?

Report jika artikel ini tidak tepat, bermasalah & perlu dibaiki.

Portal Hackers

Financial