Pada artikel ini, kita akan membahas cara mencegah injeksi SQL di PHP. Prasyarat dari topik ini adalah Anda memiliki XAMPP di komputer Anda.
Mengapa injeksi SQL terjadi?
Injeksi SQL adalah teknik injeksi kode yang digunakan untuk menyerang aplikasi berbasis data, di mana pernyataan SQL berbahaya dimasukkan ke dalam kolom entri untuk dieksekusi (misalnya, untuk membuang konten database ke penyerang).
Dalam jenis teknik ini, peretas atau penyerang menggunakan beberapa karakter khusus yang mengubah kueri SQL menjadi kueri SQL baru dan penyerang dapat memanipulasi kueri dengan memasukkan lebih banyak jenis kata kunci.
Mari kita membuat skenario injeksi SQL kemudian kita akan belajar cara memperbaikinya.
Langkah 1: Jadi, mari kita mulai dengan membuat database –
CREATE DATABASE GFG;
Langkah 2: Gunakan basis data ini –
USE GFG;
Langkah 3: Buat tabel kredensial login di database GFG –
CREATE TABLE users( id int(10) PRIMARY KEY AUTO_INCREMENT, username VARCHAR(255), password VARCHAR(255) );
Langkah 4: Masukkan beberapa data ke dalam database –
INSERT INTO users VALUES(1, 'idevesh', '1234'); INSERT INTO users VALUES(2, 'geeksforgeeks', 'gfg');

Data Setelah dimasukkan
Langkah 5: Sekarang buat skrip PHP untuk halaman login –
(a) Buat File Koneksi DB (dbconnection.php) –
PHP
|
(B) Buat form HTML untuk input dari USER –
PHP
|
(C) Buat file verifikasiLogin.php untuk memvalidasi input pengguna –
PHP
|
Langkah 6: Sekarang kami akan memberikan kata sandi beracun untuk masuk ke profil pengguna –
Poisoned password = ' or 'a'='a
Jadi, seperti yang Anda lihat, string beracun yang disebutkan di atas dapat membuat setiap pengguna login dengan nama pengguna geeksforgeeks sehingga ini disebut SQL Injection.
Sekarang untuk menghindari jenis injeksi SQL ini, kita perlu membersihkan input kata sandi dan input nama pengguna menggunakan mysqli_real_escape_string() fungsi.
Fungsi mysqli_real_escape_string() mengambil karakter khusus sebagai input dari pengguna dan tidak menganggapnya sebagai penggunaan kueri.
Jadi kode baru untuk verifikasiLogin.php adalah –
PHP
|