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_EMAILakan 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
Artikel ini dibaca sebanyak 1.905 kali
{ setTimeout(() => { showShimmer = false; }, 300); })"
:class="{'opacity-0': !loaded, 'opacity-100': loaded}"
class="lazy w-full h-auto rounded-xl border border-white dark:border-neutral-700/80 transition-opacity duration-500"
loading="lazy"
/>
SAWERIA
Memuat komentar...