Cara Sanitasi Input di PHP untuk Mencegah SQL Injection

Cara Melakukan Sanitasi Input di PHP untuk Mencegah SQL Injection

Sanitasi input adalah langkah penting untuk memastikan data dari user aman sebelum disimpan ke database.

Dalam PHP, proses sanitasi input berguna untuk mencegah serangan SQL Injection, di mana attacker dapat menyisipkan perintah SQL berbahaya melalui form input.

Dengan membersihkan data terlebih dahulu, aplikasi menjadi lebih aman dan data yang tersimpan tetap valid.

Contoh Kode PHP untuk Sanitasi Input

Berikut contoh implementasi sederhana untuk menyaring data sebelum disimpan ke database MySQLi:

<?php
// Koneksi ke database
$conn = mysqli_connect("host", "username", "password", "database_name");

// Cek koneksi
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

// Ambil data dari form dan lakukan sanitasi
$title = mysqli_real_escape_string($conn, $_POST['title']);
$content = mysqli_real_escape_string($conn, $_POST['content']);

// Buat query untuk menyimpan data ke database
$sql = "INSERT INTO table_name (title, content)
VALUES ('$title', '$content')";

// Eksekusi query
if (mysqli_query($conn, $sql)) {
    echo "Data berhasil disimpan";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

// Tutup koneksi
mysqli_close($conn);
?>

Penjelasan Kode

  • mysqli_real_escape_string
    Membersihkan karakter khusus pada input, seperti tanda petik (‘), agar tidak menyebabkan SQL Injection.
  • mysqli_connect
    Digunakan untuk membuat koneksi ke database MySQL.
  • Eksekusi query
    Query INSERT akan menyimpan data yang telah disanitasi ke tabel.
  • Menutup koneksi
    Selalu tutup koneksi menggunakan mysqli_close untuk efisiensi dan keamanan.

Tips Keamanan Tambahan

  • Selain mysqli_real_escape_string, gunakan prepared statement untuk keamanan lebih tinggi.
  • Validasi input di sisi client dan server agar data sesuai format yang diinginkan.
  • Selalu escape output saat menampilkan data ke browser untuk mencegah XSS (Cross-Site Scripting).

Kesimpulan

Sanitasi input di PHP sangat penting untuk mencegah serangan berbahaya seperti SQL Injection. Dengan membersihkan data menggunakan mysqli_real_escape_string atau prepared statement, data yang masuk ke database lebih aman dan aplikasi lebih stabil.

Apa pendapatmu? Tulis di kolom komentar dengan sopan dan beretika. Jangan lupa bagikan agar semakin banyak yang tahu!

Leave a Reply