Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Prinsip Pengekodan Selamat PHP: Cara menapis dan melepaskan input pengguna menggunakan fungsi filter_var

Prinsip Pengekodan Selamat PHP: Cara menapis dan melepaskan input pengguna menggunakan fungsi filter_var

王林
王林asal
2023-08-02 14:42:191348semak imbas

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.

  1. Apakah fungsi filter_var?
    Fungsi filter_var ialah fungsi penapisan yang berkuasa dalam PHP, digunakan untuk menapis dan mengesahkan pelbagai jenis data. Dengan menggunakan penapis yang berbeza, kami boleh menapis dan mengesahkan data yang dimasukkan pengguna, memastikan keselamatannya.
  2. Menapis Input Pengguna
    Menapis input pengguna ialah langkah penting dalam melindungi aplikasi web anda. Apabila input pengguna diterima, kami harus menapisnya daripada kemungkinan kod atau aksara berniat jahat. Berikut ialah beberapa penapis dan kod sampel yang biasa digunakan:

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
  1. Escape input pengguna
    Selain menapis input pengguna, kita juga harus melarikan diri input pengguna untuk mengelakkan serangan skrip merentas tapak. Berikut ialah beberapa fungsi melarikan diri dan kod sampel yang biasa digunakan:

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!
  1. Aplikasi komprehensif menapis dan melepaskan input pengguna
    Dalam pembangunan kehidupan sebenar, kita biasanya perlu menggunakan kaedah menapis dan melepaskan input pengguna secara menyeluruh. Di bawah ialah contoh kod untuk aplikasi yang komprehensif:
$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:

  • [PHP: fungsi filter_var](https://www.php.net/manual/zh/function.filter-var.php)
  • [PHP: fungsi htmlspecialchars](https:// www.php.net/manual/zh/function.htmlspecialchars.php)
  • [PHP: fungsi addslashes](https://www.php.net/manual/zh/function.addslashes.php)

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!

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