SQL injection (SQLi)

22 Jun 2022 17:30 771 Hits 0 Comments Approved by Plimbi
teknik injeksi code yang digunakan untuk memodifikasi atau mengambil data dari database SQL

Apa itu injection SQL (SQi)?

Structured Query Language (SQL) Injection adalah teknik injeksi code yang digunakan untuk memodifikasi atau mengambil data dari database SQL. Dengan memasukkan pernyataan SQL khusus ke dalam bidang entry, penyerang dapat menjalankan perintah yang memungkinkan pengambilan data dari database, penghancuran data sensitif, atau perilaku manipulatif lainnya.

Dengan eksekusi perintah SQL yang tepat, pengguna yang tidak sah dapat memalsukan identitas pengguna yang lebih istimewa, menjadikan diri mereka sendiri atau administrator database lain, merusak data yang ada, memodifikasi transaksi dan saldo, dan mengambil dan/atau menghancurkan semua data server.

Dalam komputasi modern, injeksi SQL biasanya terjadi melalui Internet dengan mengirimkan kueri SQL berbahaya ke titik akhir APIs yang disediakan oleh situs web atau layanan. Dalam bentuknya yang paling parah, injeksi SQL dapat memungkinkan penyerang untuk mendapatkan akses root ke mesin, memberi mereka kontrol penuh.

*SQL adalah bahasa pemrograman yang digunakan untuk memelihara sebagian besar database.

 

Bagaimana cara kerja SQL injection attack?

Bayangkan sebuah ruang sidang di mana seorang pria bernama Bob diadili, dan akan muncul di hadapan hakim. Saat mengisi dokumen sebelum sidang, Bob menulis namanya sebagai “Bob bebas pergi”. Ketika hakim mencapai kasusnya dan membacakan "Sekarang memanggil Bob bebas untuk pergi", juru sita membiarkan Bob pergi karena hakim berkata demikian.

Meskipun ada jenis SQLi yang sedikit berbeda, kerentanan inti pada dasarnya sama: bidang query SQL yang seharusnya dicadangkan untuk jenis data tertentu, seperti nomor, malah melewati informasi yang tidak diharapkan, seperti perintah. Perintah, saat dijalankan, lolos dari batasan yang dimaksudkan, memungkinkan perilaku yang berpotensi jahat. Bidang kueri biasanya diisi dari data yang dimasukkan ke dalam formulir di halaman web.

 

Bagaimana mencegah serangan SQL Injection?

Ada sejumlah metode untuk mengurangi risiko pelanggaran data karena injeksi SQLAda sejumlah metode untuk mengurangi risiko pelanggaran data karena SQL injection.  Mari kita jelajahi beberapa implementasi yang lebih umum:

Penggunaan Pernyataan yang Disiapkan (dengan Kueri Berparameter)

Metode sanitasi input basis data ini melibatkan pemaksaan developer untuk terlebih dahulu mendefinisikan semua code SQL, dan kemudian hanya meneruskan parameter tertentu ke query SQL; data yang dimasukkan secara eksplisit diberikan ruang lingkup terbatas yang tidak dapat diperluas lebih jauh. Hal ini memungkinkan database untuk membuat perbedaan antara data yang sedang dimasukkan dan kode yang akan dijalankan, terlepas dari jenis data yang disediakan di bidang input. Beberapa object-relational mapping (ORM) biasanya digunakan untuk tujuan ini, karena beberapa versi akan membersihkan input database secara otomatis.

Keluar dari semua user yang masuk

Saat menulis SQL, karakter atau kata tertentu memiliki arti tertentu. Misalnya, karakter '*' berarti "setiap" dan kata "ATAU" adalah kondisional. Untuk menghindari pengguna memasukkan karakter ini secara tidak sengaja atau jahat ke dalam permintaan API ke database, input yang diberikan pengguna dapat diloloskan. keluar dari karakter adalah cara memberi tahu database untuk tidak menguraikannya sebagai perintah atau kondisional, tetapi memperlakukannya sebagai literal input.

Tags

About The Author

Plimbi adalah tempat menulis untuk semua orang.
Yuk kirim juga tulisanmu sekarang
Submit Artikel