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
QueryINSERTakan menyimpan data yang telah disanitasi ke tabel. - Menutup koneksi
Selalu tutup koneksi menggunakanmysqli_closeuntuk 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!