Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Petua pengekodan selamat PHP: Cara menapis dan membersihkan input pengguna menggunakan fungsi filter_var

Petua pengekodan selamat PHP: Cara menapis dan membersihkan input pengguna menggunakan fungsi filter_var

王林
王林asal
2023-07-29 14:53:00771semak imbas

Petua Pengekodan Selamat PHP: Cara menggunakan fungsi filter_var untuk menapis dan membersihkan input pengguna

Apabila membangunkan aplikasi web, data yang dimasukkan pengguna adalah penting untuk melindungi keselamatan sistem. Input pengguna yang tidak ditapis mungkin mengandungi kod hasad atau data yang menyalahi undang-undang, jadi penapisan dan sanitasi input yang berkesan diperlukan untuk melindungi aplikasi daripada serangan. PHP menyediakan fungsi filter_var, yang merupakan alat berkuasa yang boleh digunakan untuk menapis dan memurnikan input pengguna Artikel ini akan memperincikan cara menggunakan fungsi filter_var dan beberapa teknik pengekodan keselamatan biasa.

  1. Tapis input pengguna yang tidak dipercayai

Pertama, kita perlu mengenal pasti dan menapis input pengguna yang tidak dipercayai. Input pengguna yang tidak dipercayai termasuk borang, parameter URL, kuki, dll. Kami tidak dapat mengesahkan ketulenan dan keselamatan data ini. Oleh itu, sebelum menggunakan input pengguna, anda perlu menapisnya menggunakan fungsi filter_var.

Berikut ialah contoh mudah Kami menggunakan fungsi filter_var untuk menapis alamat e-mel yang dimasukkan oleh pengguna:

$email = $_POST['email'];
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
    // 邮箱地址有效,继续执行业务逻辑
}else{
    // 邮箱地址无效,给用户一个错误提示
}

Dalam contoh di atas, kami menggunakan fungsi filter_var dan penapis FILTER_VALIDATE_EMAIL untuk mengesahkan dan menentukan $emel yang dimasukkan oleh pengguna itu sama ada alamat e-mel yang sah. Jika ia adalah alamat e-mel yang sah, logik perniagaan akan terus dilaksanakan jika ia tidak sah, mesej ralat akan diberikan kepada pengguna.

  1. Bersihkan input pengguna

Hanya menapis input pengguna tidak mencukupi, kami juga perlu membersihkan input pengguna untuk memastikan ia tidak menyebabkan isu keselamatan. Contohnya, menghalang kelemahan skrip rentas tapak (XSS).

Berikut ialah contoh di mana kami menggunakan fungsi filter_var dan penapis FILTER_SANITIZE_STRING untuk membersihkan rentetan yang dimasukkan oleh pengguna:

$username = $_POST['username'];
$clean_username = filter_var($username, FILTER_SANITIZE_STRING);
// 使用$clean_username进行进一步的处理

Dalam contoh di atas, kami menggunakan penapis FILTER_SANITIZE_STRING untuk membersihkan rentetan yang dimasukkan oleh pengguna untuk memastikan bahawa tiada Mengandungi sebarang kod atau markup yang berpotensi berniat jahat. Kami menyimpan hasil yang telah dibersihkan dalam pembolehubah $clean_username, yang kemudiannya boleh digunakan dalam kod berikutnya.

  1. Elakkan menggunakan input pengguna secara langsung

Selain menapis dan membersihkan input pengguna menggunakan fungsi filter_var, satu lagi petua pengekodan selamat yang penting ialah mengelak daripada menggunakan input pengguna secara langsung. Walaupun ia melepasi penapisan dan sanitasi, kami tidak boleh memasukkan input pengguna secara langsung ke dalam pertanyaan SQL, arahan Shell atau output HTML, jika tidak, ia mungkin membawa kepada suntikan SQL, suntikan arahan atau kelemahan XSS.

Untuk mengelak daripada menggunakan input pengguna secara langsung, fungsi keselamatan atau API yang sepadan harus digunakan untuk mengendalikan input pengguna. Sebagai contoh, untuk pertanyaan pangkalan data, anda harus menggunakan pernyataan yang disediakan atau parameter terikat untuk memasukkan input pengguna dan bukannya menggabungkan rentetan SQL secara langsung.

Berikut ialah contoh memasukkan input pengguna menggunakan pernyataan yang disediakan:

$stmt = $pdo->prepare('INSERT INTO users (username, password) VALUES (:username, :password)');
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();

Dalam contoh di atas, kami menggunakan penyataan yang disediakan PDO dan kaedah bindParam untuk memasukkan input pengguna, dan menggunakan ruang letak (:nama pengguna dan :kata laluan ) dan bukannya pengguna sebenar nilai input. Melakukannya boleh menghalang serangan suntikan SQL dengan berkesan.

Ringkasan:

Fungsi filter_var yang disediakan oleh PHP ialah alat berkuasa yang boleh membantu kami menapis dan membersihkan input pengguna untuk memastikan keselamatan sistem. Apabila menulis kod PHP selamat, anda harus sentiasa melakukan penapisan dan sanitasi input pengguna yang berkesan dan elakkan menggunakan input pengguna secara langsung. Petua pengekodan selamat ini boleh membantu kami melindungi aplikasi web daripada serangan dengan berkesan.

Di atas adalah pengenalan tentang cara menggunakan fungsi filter_var untuk menapis dan memurnikan input pengguna. Saya harap ia akan membantu anda. Terima kasih kerana membaca!

Atas ialah kandungan terperinci Petua pengekodan selamat PHP: Cara menapis dan membersihkan input pengguna menggunakan fungsi filter_var. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn