Prinsip Pengekodan Selamat PHP: Cara menapis dan melepaskan input pengguna menggunakan fungsi filter_var
Petikan:
Keselamatan adalah faktor penting semasa membangunkan aplikasi web. Menapis dan melepaskan input pengguna ialah langkah kritikal dalam mencegah suntikan SQL, serangan skrip merentas tapak dan kelemahan keselamatan yang lain. Dalam PHP, menapis dan melepaskan input pengguna boleh dicapai dengan mudah menggunakan fungsi filter_var. Artikel ini akan menerangkan cara menggunakan fungsi filter_var dengan betul untuk melindungi aplikasi PHP anda.
a) FILTER_SANITIZE_STRING: Menapis teg HTML dan PHP dalam rentetan.
$input = "<script> alert('XSS attack!') </script>" $clean_input = filter_var($input, FILTER_SANITIZE_STRING); echo $clean_input; // 输出:alert('XSS attack!')
b) FILTER_SANITIZE_EMAIL: Alih keluar semua aksara kecuali huruf, nombor dan @ daripada rentetan.
$email = "john.doe@example.com"; $clean_email = filter_var($email, FILTER_SANITIZE_EMAIL); echo $clean_email; // 输出:john.doe@example.com
c) FILTER_SANITIZE_URL: Alih keluar semua aksara dalam rentetan kecuali huruf, nombor dan :/.?=&.
$url = "http://example.com/?q=test"; $clean_url = filter_var($url, FILTER_SANITIZE_URL); echo $clean_url; // 输出:http://example.com/?q=test
a) fungsi htmlspecialchars: Tukar aksara khas kepada entiti HTML.
$input = "<script> alert('XSS attack!') </script>"; $escaped_input = htmlspecialchars($input, ENT_QUOTES, 'UTF-8'); echo $escaped_input; // 输出:<script> alert('XSS attack!') </script>
b) fungsi tambah sebatan: Menambah sembang belakang sebelum aksara tertentu dalam rentetan.
$input = "It's a beautiful day!"; $escaped_input = addslashes($input); echo $escaped_input; // 输出:It's a beautiful day!
$username = $_POST['username']; $password = $_POST['password']; $clean_username = filter_var($username, FILTER_SANITIZE_STRING); $clean_password = addslashes($password); // 在数据库查询前使用转义后的数据 $query = "SELECT * FROM users WHERE username='$clean_username' AND password='$clean_password'";
Ringkasan:
Dengan menggunakan fungsi filter_var, kami boleh menapis dan melepaskan input pengguna dengan mudah dan berkesan, dengan itu meningkatkan keselamatan aplikasi web. Apabila mengendalikan input pengguna, kita harus sentiasa menggunakan kaedah penapisan dan melarikan diri untuk menghalang suntikan SQL, XSS dan kelemahan keselamatan biasa yang lain.
Sila ambil perhatian bahawa dalam pembangunan sebenar, penapisan dan pelepasan input pengguna hanyalah barisan pertahanan pertama untuk melindungi aplikasi anda. Kita juga harus menggunakan langkah keselamatan lain seperti pengesahan input, penggunaan pernyataan yang disediakan, dsb. Hanya dengan menggunakan pelbagai langkah keselamatan dalam gabungan kami boleh memastikan bahawa aplikasi kami adalah seaman mungkin.
Bacaan lanjutan:
Atas ialah kandungan terperinci Prinsip Pengekodan Selamat PHP: Cara menapis dan melepaskan input pengguna menggunakan fungsi filter_var. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!