Apabila membangunkan aplikasi web, data yang dimasukkan pengguna sering digunakan dalam operasi seperti pertanyaan pangkalan data, fail I/O dan menghantar e-mel. Walau bagaimanapun, data yang dimasukkan oleh pengguna tidak boleh dipercayai kerana pengguna boleh memasukkan sebarang data yang menyalahi undang-undang, seperti suntikan SQL, serangan skrip merentas tapak, pelaksanaan arahan jauh, dsb. Masalah ini mungkin membawa kepada kelemahan keselamatan dalam aplikasi. Oleh itu, data yang dimasukkan pengguna mesti ditapis dan disahkan sebelum ia boleh digunakan untuk operasi yang diperlukan. PHP menyediakan fungsi filter_var() yang boleh menapis dan mengesahkan data input pengguna dengan berkesan.
Fungsi filter_var() menyediakan satu set penapis yang boleh digunakan untuk mengesahkan, menapis dan mengubah pelbagai jenis data. Penapis ini ditakrifkan sebagai pemalar dan boleh digabungkan mengikut keperluan. Contohnya, anda boleh menggunakan penapis FILTER_SANITIZE_STRING untuk mengalih keluar semua teg dan aksara khas daripada rentetan.
Berikut ialah beberapa penapis yang paling biasa digunakan:
$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING); $email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL); if (!$email) { echo "Invalid email address"; }
Dalam contoh di atas, $_POST['nama'] dan $_POST['email'] ialah data yang diserahkan melalui borang. Penapis pertama akan mengalih keluar semua teg dan aksara khas daripada nilai input, dan penapis kedua akan mengesahkan kesahihan alamat e-mel. Jika alamat e-mel tidak sah, "Alamat e-mel tidak sah" akan dikeluarkan.
Fungsi filter_var() juga boleh digunakan untuk menapis dan mengesahkan nilai dalam tatasusunan. Contohnya:
$data = array( 'name' => 'John Smith', 'age' => '30', 'email' => 'john.smith@example.com' ); $filteredData = filter_var_array($data, array( 'name' => FILTER_SANITIZE_STRING, 'age' => array( 'filter' => FILTER_VALIDATE_INT, 'options' => array( 'min_range' => 18, 'max_range' => 100 ) ), 'email' => FILTER_VALIDATE_EMAIL ));
Dalam contoh di atas, tatasusunan $data mengandungi beberapa data input pengguna. Fungsi filter_var_array() akan menapis dan mengesahkan tatasusunan dan mengembalikan tatasusunan baharu $filteredData. Setiap nilai ditapis dan disahkan menggunakan penapis yang sesuai. Sebagai contoh, nilai umur akan disahkan menggunakan FILTER_VALIDATE_INT dan tatasusunan pilihan untuk memastikan nilai antara 18 dan 100.
Selain penapis yang dinyatakan di atas, fungsi filter_var() mempunyai beberapa penapis berguna lain. Contohnya, FILTER_SANITIZE_NUMBER_INT digunakan untuk mengalih keluar semua aksara daripada rentetan kecuali nombor dan tanda tambah/tolak. FILTER_SANITIZE_SPECIAL_CHARS digunakan untuk mengalih keluar tag HTML dan PHP daripada rentetan dan petikan melarikan diri.
Untuk meringkaskan, keselamatan dalam aplikasi web adalah penting, dan data input pengguna biasanya merupakan salah satu faktor yang terdedah. Fungsi filter_var() boleh digunakan untuk menapis dan mengesahkan data input pengguna dengan berkesan untuk memastikan integriti dan keselamatan data. Dengan menggunakan penapis yang sesuai, anda boleh mengesahkan alamat e-mel, integer dan nombor titik terapung dengan mudah, tag penapis dalam rentetan, mengalih keluar aksara khas dan banyak lagi.
Atas ialah kandungan terperinci Fungsi PHP filter_var(): menapis dan mengesahkan input pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!