Last Updated on June 13, 2022 by
Sebuah formulir biasanya berisikan sejumlah input seperti bidang teks, tombol radio, daftar pilihan pilihan ganda, kotak centang, dan tombol kirim. Input ini akan divalidasi untuk memastikan bahwa pengguna telah memberikan nilai untuk masing-masing input.
Table of Contents
Apa itu Form Validasi PHP?
Setiap coder pasti memahami pentingnya keamanan web. Pelanggaran keamanan dapat menyebabkan ketidaknyamanan kecil serta kerugian finansial yang besar dan pelanggaran privasi. Itu sebabnya validasi formulir PHP juga harus dianggap sebagai prioritas. Setelah pengguna mengirimkan formulir dengan data mereka, sangat penting untuk memvalidasi input ini.
Form validasi PHP berguna untuk memastikan bahwa formulir PHP Anda aman. Untuk melakukan ini, Anda pun perlu mengatur validasi formulir. Jika Anda mengatur validasi formulir PHP dengan benar, itu akan melindungi database Anda dari injeksi dan eksploitasi SQL.
Bagaimana Sebuah Formulir Diperiksa?
Untuk melihat cara kerja pemrosesan formulir PHP, pertama-tama mari kita buat contoh formulir itu sendiri. Ini akan mencakup tiga bidang input seperti:
- Nama panggilan (wajib): hanya boleh terdiri dari karakter huruf dan spasi.
- Umpan balik (opsional): bidang teks multibaris.
- Posting secara anonim? (wajib): satu nilai harus dipilih untuk mengirimkan formulir.
Ini adalah kode PHP bentuk HTML lengkap yang akan kita gunakan:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> Nickname: <input name="nama pangilan" type="text"> Feedback: <textarea name="umpat balik" rows="5" cols="60"></textarea> Post anonymously? <input name="anonim" type="radio" value="ya">Yes <input name="anonim" type="radio" value="tidak">No <input name="submit" type="submit" value"submit">Submit</input> </form>
Sekarang, Anda akan melihat sebuah skrip untuk membuat form validasi PHP.
<?php // define variables and set to empty values $nickname = $anon = $feedback = ''; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $nickname = test_input($_POST['nama panggilan']); $feedback = test_input($_POST['umpan balik']); $anon = test_input($_POST['anonim']); } function proc_input($input) { $input = trim($input); $input = stripslashes($input); $input = htmlspecialchars($input); return $input; } ?>
Pertama, kita akan meneruskan semua variabel yang kami kirimkan melalui htmlspecialchars() dan mengubah semua karakter khusus menjadi entitas HTML. Hal itu pun membuat entri aman untuk diproses.
Kedua, kita akan menggunakan fungsi trim() untuk menghapus spasi, tab, dan baris baru tambahan dari data input, diikuti oleh stripslash() untuk menghapus garis miring terbalik dari input.
Daripada menulis fungsi-fungsi ini berulang kali untuk setiap bagian input, kita bisa mendefinisikan semuanya dalam satu fungsi proc_input() dan menggunakannya pada masing-masingnya.
Di awal skrip membuat form validasi, kita memeriksa apakah input dikirim menggunakan $_SERVER[“REQUEST_METHOD”]. Dengan asumsi REQUEST_METHOD adalah POST, formulir dikirimkan dan divalidasi. Jika tidak, formulir kosong akan ditampilkan.
Input Elemen untuk Form Validasi PHP
Ada beberapa opsi cara input dapat diminta dari pengguna ketika membuat Form Validasi PHP. Salah satu jenis yang paling umum adalah bidang teks. Namun, Anda juga dapat menyesuaikan formulir dengan tombol radio.
Bidang Teks
Untuk membuat bidang input teks, kita akan menggunakan tag HTML <input> dan menetapkan atribut nama. Dengan begitu kita akan dapat mereferensikan field input dalam kode PHP kita. Lihatlah:
Nickname: <input name="nama panggilan" type="text" > Feedback: <textarea name="umpan balik" rows="4" cols="50"></textarea>
Tombol Radio
Tombol radio digunakan ketika pengguna harus memilih satu opsi dari pilihan yang disediakan. Untuk membuat dua di antaranya, buat dua elemen input dengan atribut nama yang mirip. Jangan lupa untuk memberi mereka atribut nilai masing-masing!
Lihat contoh untuk melihat tampilan kode Anda:
Post anonymously? <input name="anonim" type="radio" value="ya">Ya <input name="anonim" type="radio" value="tidak">Tidak
Form Elemen
Untuk membuat elemen PHP bentuk HTML yang tahan terhadap berbagai eksploitasi yang terhubung ke validasi dan pengiriman formulir PHP, kita akan menggunakan fungsi htmlspecialchars() untuk mengubah karakter khusus (seperti kurung sudut <>) menjadi entitas HTML. Metode yang kami tetapkan untuk formulir ini adalah POST, karena tujuan kami adalah mengunggah data.
$_SERVER[“PHP_SELF”] adalah variabel global, yang kita gunakan untuk mereferensikan halaman yang sedang kita buka saat menggunakan fungsi htmlspecialchars():
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Fungsi htmlspecialchars() adalah alat yang luar biasa untuk menghindari eksploitasi $_SERVER[“PHP_SELF”] karena fungsi ini mencegah penyerang memasukkan karakter khusus yang memungkinkan mereka memasukkan kode ke situs web Anda.
PHP SELF : Security Note
Anda perlu berhati-hati terhadap variabel yang disebut $_SERVER[“PHP_SELF”]. Dengan menggunakan PHP_SELF di halaman saat ini dan memasukkan simbol /, penyerang dapat menggunakan perintah Cross Site Scripting (XSS).
Perlu diingat bahwa Cross-site scripting (XSS) adalah kesalahan keamanan umum yang dimiliki sebagian besar aplikasi web. Menggunakan XXS, penyerang dapat mengubah skrip sisi klien di situs web Anda.
Bayangkan ini adalah elemen form dalam file form.php kita. Contoh:
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
Jika URL normal dimasukkan, kode di atas akan berubah menjadi sesuatu yang mirip dengan contoh validasi form PHP ini. Contoh:
form method="post" action="form.php">
Hal itu pun bisa terjadi secara normal. Namun, seseorang dapat memasukkan URL seperti ini. Contoh
http://www.example.com/form.php/%22%3E%3Cscript%3Ealert(‘hacked’)%3C/script%3E
Kemudian, kode di atas akan berubah menjadi seperti ini:
<form method=”post” action=”form.php/”><script>alert(‘hacked lmao’)</script>
Dalam hal ini, URL memasukkan perintah, yang membuat situs kita menampilkan peringatan JavaScript yang mengatakan diretas. Pelajaran di sini adalah bahwa menggunakan PHP_SELF adalah titik lemah yang mungkin mudah dieksploitasi.
Perlu diingat bahwa dengan menambahkan tag <script>, peretas dapat menjalankan kode JavaScript di situs Anda. Invasi ini akan membiarkan mereka merusak database atau situs web Anda.
Kesimpulan
Itulah penjelasan tentang cara membuat form validasi PHP. Validasi formulir sangat penting: tanpanya, Anda tidak dapat sepenuhnya yakin bahwa formulir Anda dilindungi.
Jika Anda meluangkan waktu untuk mempersiapkan validasi PHP, Anda mungkin menghindari injeksi SQL dan eksploitasi database Anda. Menggunakan PHP SELF, penyerang dapat merusak situs web Anda jika Anda melewatkan langkah validasi formulir PHP yang penting.
Anda tertarik untuk mendapatkan lebih banyak materi seputar PHP atau membuat form validasi di bahasa pemrograman lainnya? Kunjungi selalu Codekey di https://codekey.id/ dan dapatkan berbagai materi dan tutorial bahasa pemrograman.
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.