Halo teman-teman semuanya, setelah di artikel sebelumnya kita belajar cara menangani data form menggunakan $_GET
dan $_POST
, sekarang saatnya kita bahas bagaimana cara memvalidasi dan mengamankan data tersebut sebelum digunakan di dalam aplikasi.
Dua fungsi penting yang akan kita pelajari kali ini adalah:
filter_var()
untuk validasi dan filter data (misal: email kosong, angka yang diisi huruf).
htmlspecialchars()
untuk menghindari serangan XSS. (ada niat jahat, seperti menyisipkan tag <script>
untuk mencuri data pengguna).
Maka dari itu, kita wajib membersihkan dan memvalidasi data sebelum menyimpannya ke database atau menampilkannya ke pengguna lain.
1. Validasi dengan filter_var()
Fungsi filter_var()
digunakan untuk memfilter dan memvalidasi data.
-
Contoh: Validasi Email
<?php
$email = $_POST['email'];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Email valid: " . $email;
} else {
echo "Email tidak valid!";
}
?>
Penjelasan:
FILTER_VALIDATE_EMAIL
akan memastikan format email benar.
- Jika tidak valid, tampilkan pesan error.
-
Contoh: Filter Angka
<?php
$umur = $_POST['umur'];
if (filter_var($umur, FILTER_VALIDATE_INT)) {
echo "Umur kamu: $umur";
} else {
echo "Umur harus berupa angka!";
}
?>
2. Lindungi Tampilan dengan htmlspecialchars()
Fungsi ini digunakan untuk mencegah serangan XSS (Cross-site scripting) dengan cara mengubah karakter spesial menjadi entitas HTML.
Contoh:
<?php
$nama = $_POST['nama'];
$nama_bersih = htmlspecialchars($nama);
echo "Halo, " . $nama_bersih;
?>
Jika pengguna memasukkan:
<script>alert('XSS')</script>
Tanpa htmlspecialchars()
, browser akan menjalankan skrip tersebut. Tapi dengan htmlspecialchars()
, hasilnya akan ditampilkan sebagai teks biasa, bukan dijalankan.
Kesimpulan
Dalam pengembangan aplikasi web, validasi dan keamanan input adalah hal yang sangat penting. Dengan menggunakan filter_var()
dan htmlspecialchars()
, kita bisa mencegah banyak potensi masalah seperti data error, spam, dan bahkan serangan keamanan.
Pada artikel selanjutnya, kita semua akan belajar tentang Session di dalam PHP.
Terima Kasih