Rumah >pembangunan bahagian belakang >tutorial php >Petua Pantas: Cara Menapis Data dengan PHP

Petua Pantas: Cara Menapis Data dengan PHP

Jennifer Aniston
Jennifer Anistonasal
2025-02-08 09:14:16795semak imbas

Quick Tip: How to Filter Data with PHP

mata utama

    Jangan mempercayai input luaran dalam aplikasi. Adalah penting untuk menapis sebarang data yang terkandung dalam aplikasi anda untuk mengelakkan penyerang daripada suntikan kod.
  • Dua jenis utama penapisan data dalam PHP adalah pengesahan dan pembersihan. Pengesahan memastikan bahawa input luaran memenuhi jangkaan, sementara pembersihan menghilangkan aksara haram atau tidak selamat dari input luaran.
  • PHP menyediakan pelbagai penapis untuk pengesahan dan pembersihan. Penapis ini boleh digunakan menggunakan fungsi
  • dan filter_var() untuk menjadikan aplikasi PHP anda lebih selamat dan lebih dipercayai. filter_input()
Artikel ini akan meneroka mengapa apa -apa yang terkandung dalam aplikasi penapis sangat penting. Khususnya, kita akan melihat cara mengesahkan dan membersihkan data luaran dalam PHP.

Benar -benar tidak mempercayai input luaran dalam aplikasi . Ini adalah salah satu pelajaran yang paling penting yang perlu dipelajari oleh sesiapa sahaja yang membangunkan aplikasi web.

Input luaran boleh menjadi apa -apa - data input dari

dan $_GET bentuk, unsur -unsur tertentu dalam badan permintaan HTTP, dan juga nilai -nilai tertentu dalam pembolehubah hyperglobal $_POST. Kuki, nilai sesi, dan fail dokumen yang dimuat naik dan dimuat turun juga dianggap input luaran. $_SERVER

Setiap kali kami memproses, mengeluarkan, memasukkan, atau menyambungkan data luaran ke dalam kod kami, mungkin penyerang menyuntik kod ke dalam aplikasi kami (serangan suntikan yang dipanggil). Oleh itu, kita perlu memastikan bahawa setiap sekeping data luaran ditapis dengan betul supaya ia dapat diintegrasikan dengan selamat ke dalam aplikasi.

Dari segi penapisan, terdapat dua jenis utama: pengesahan dan pembersihan.

Pengesahan

Sahkan bahawa input luaran memenuhi jangkaan kami. Sebagai contoh, kami mungkin mengharapkan alamat e -mel, jadi kami mengharapkan format yang serupa dengan

. Untuk melakukan ini, kita boleh menggunakan penapis name@domain.com. Atau, jika kita mengharapkan boolean, kita boleh menggunakan penapis PHP FILTER_VALIDATE_EMAIL. FILTER_VALIDATE_BOOL

Penapis yang paling berguna termasuk

, FILTER_VALIDATE_BOOL dan FILTER_VALIDATE_INT untuk penapisan jenis asas, dan FILTER_VALIDATE_FLOAT dan FILTER_VALIDATE_EMAIL untuk menapis e -mel dan nama domain, masing -masing. FILTER_VALIDATE_DOMAIN

Satu lagi penapis yang sangat penting ialah

, yang membolehkan kita menapis mengikut ungkapan biasa. Dengan penapis ini, kita boleh membuat penapis tersuai dengan menukar ekspresi biasa yang kita tapis. FILTER_VALIDATE_REGEXP

Semua penapis yang tersedia untuk pengesahan dalam PHP boleh didapati di sini.

Pembersihan

Pembersihan adalah proses mengeluarkan aksara haram atau tidak selamat dari input luaran.

Contoh terbaik ialah kita membersihkan input pangkalan data sebelum memasukkannya ke dalam pertanyaan SQL asal.

Sama, beberapa penapis pembersihan yang paling berguna termasuk penapis untuk membersihkan jenis asas seperti FILTER_SANITIZE_STRING, FILTER_SANITIZE_CHARS dan FILTER_SANITIZE_INT, serta FILTER_SANITIZE_URL dan FILTER_SANITIZE_EMAIL untuk membersihkan URL dan mel elektronik.

Semua penapis pembersihan PHP boleh didapati di sini.

filter_var() dan filter_input()

Sekarang kita tahu bahawa PHP menyediakan pelbagai penapis, kita perlu tahu cara menggunakannya.

Aplikasi penapis

dilakukan melalui fungsi filter_var() dan filter_input().

Fungsi

filter_var() menggunakan penapis yang ditentukan kepada pembolehubah. Ia akan mendapat nilai untuk menapis, penapis untuk memohon, dan pelbagai pilihan pilihan. Sebagai contoh, jika kita cuba mengesahkan alamat e -mel, kita boleh menggunakan kod berikut:

<code class="language-php"><?php
$email = 'your.email@sitepoint.com';

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo("This email is valid");
}</code>

Jika matlamatnya adalah untuk membersihkan rentetan, kita boleh menggunakan kod berikut:

<code class="language-php"><?php
$string = "<h1>Hello World</h1>";

$sanitized_string = filter_var($string, FILTER_SANITIZE_STRING);
echo $sanitized_string;</code>
Fungsi

filter_input() mengambil input luaran dari input borang dan menapisnya.

3 Ia juga secara selektif mendapat pelbagai pilihan.

filter_var() Begitu juga, jika kita ingin menyemak sama ada "e -mel" pembolehubah input luaran dihantar ke permohonan kami melalui GET, kita boleh menggunakan kod berikut:

<code class="language-php"><?php
if (filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) {
    echo "The email is being sent and is valid.";
}</code>
Kesimpulan

Ini adalah asas penapisan data dalam PHP. Teknik lain boleh digunakan untuk menapis data luaran, seperti menggunakan ungkapan biasa, tetapi teknik yang kita lihat dalam artikel ini mencukupi untuk kebanyakan kes penggunaan.

Pastikan anda memahami perbezaan antara pengesahan dan pembersihan dan cara menggunakan fungsi penapis. Dengan pengetahuan ini, aplikasi PHP anda akan lebih dipercayai dan selamat!

Soalan Lazim Mengenai Penapisan Data PHP (FAQ)

Apakah kepentingan penapisan data PHP?

Penapisan data PHP adalah penting untuk memastikan keselamatan dan integriti aplikasi web anda. Ia membantu mengesahkan dan membersihkan input pengguna, sumber kerentanan keselamatan yang sama seperti suntikan SQL dan skrip lintas tapak (XSS). Dengan menapis data, anda boleh menghalang data yang berniat jahat atau salah daripada menyebabkan kerosakan pada aplikasi atau pangkalan data anda. Ia juga membantu mengekalkan konsistensi dan kebolehpercayaan data, yang penting untuk operasi lancar aplikasi.

Bagaimana penapisan data PHP berfungsi?

Penapisan data PHP berfungsi dengan menggunakan fungsi penapis tertentu ke data. Fungsi ini boleh mengesahkan data (periksa sama ada data memenuhi syarat tertentu) atau membersihkan data (mengeluarkan sebarang aksara haram atau tidak selamat dari data). PHP menyediakan pelbagai fungsi penapis terbina dalam yang boleh anda gunakan, seperti

,

, dan filter_var(). filter_input()

Apakah beberapa fungsi penapis PHP biasa dan bagaimana menggunakannya?

Beberapa fungsi penapis PHP biasa termasuk filter_var(), filter_input(), filter_has_var(), dan filter_id(). Fungsi filter_var() menggunakan penapis yang ditentukan untuk menapis pembolehubah. filter_input() Fungsi mengambil pembolehubah luaran tertentu dengan nama dan menapisnya secara pilihan. Fungsi filter_has_var() memeriksa sama ada pemboleh ubah jenis input yang ditentukan wujud, manakala fungsi filter_id() mengembalikan ID penapis milik penapis yang dinamakan.

bagaimana menggunakan fungsi filter_var() dalam php?

fungsi filter_var() dalam PHP digunakan untuk menapis pembolehubah menggunakan penapis yang ditentukan. Ia menerima dua parameter: pembolehubah yang akan ditapis dan jenis penapis yang akan digunakan. Sebagai contoh, untuk mengesahkan bahawa pembolehubah adalah e -mel, anda boleh menggunakan penapis FILTER_VALIDATE_EMAIL dengan fungsi filter_var() seperti berikut:

<code class="language-php"><?php
$email = 'your.email@sitepoint.com';

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo("This email is valid");
}</code>

Apakah perbezaan antara mengesahkan dan membersihkan data dalam PHP?

Mengesahkan data dalam PHP melibatkan memeriksa sama ada data memenuhi syarat -syarat tertentu. Sebagai contoh, anda boleh mengesahkan alamat e -mel anda untuk memastikan ia diformat dengan betul. Sebaliknya, pembersihan data melibatkan pemadaman atau menggantikan mana -mana aksara haram atau tidak selamat dari data. Ini sering bertujuan untuk mengelakkan kelemahan keselamatan seperti suntikan SQL dan skrip lintas tapak (XSS).

bagaimana untuk membersihkan input pengguna dalam php?

Anda boleh menggunakan fungsi filter_input() dan penapis pembersihan untuk membersihkan input pengguna dalam PHP. Sebagai contoh, untuk membersihkan nama pengguna mendapatkan input, anda boleh menggunakan penapis FILTER_SANITIZE_STRING seperti berikut:

<code class="language-php"><?php
$string = "<h1>Hello World</h1>";

$sanitized_string = filter_var($string, FILTER_SANITIZE_STRING);
echo $sanitized_string;</code>

Apakah beberapa bendera penapis PHP biasa dan bagaimana menggunakannya?

bendera penapis PHP digunakan untuk menambah kekangan tambahan atau pengubah suai ke proses penapisan. Beberapa tanda biasa termasuk FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW dan FILTER_FLAG_ENCODE_HIGH. Sebagai contoh, bendera FILTER_FLAG_STRIP_LOW membuang aksara dengan nilai ASCII di bawah 32 dari input.

Bagaimana menggunakan bendera penapis dalam php?

Anda boleh menggunakan bendera penapis dalam PHP dengan meluluskannya sebagai hujah ketiga ke fungsi filter_var() atau filter_input(). Sebagai contoh, untuk menapis alamat IP dan membenarkan hanya alamat IPv4, anda boleh menggunakan bendera FILTER_FLAG_IPV4 seperti berikut:

<code class="language-php"><?php
if (filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) {
    echo "The email is being sent and is valid.";
}</code>

Apakah fungsi filter_has_var() dalam php?

Fungsi filter_has_var() dalam PHP digunakan untuk memeriksa sama ada pemboleh ubah jenis input yang ditentukan wujud. Ia menerima dua parameter: jenis input dan nama berubah. Pulangan benar jika pembolehubah wujud;

bagaimana menggunakan fungsi filter_has_var() dalam php?

anda boleh menggunakan fungsi filter_has_var() dalam PHP untuk memeriksa sama ada pemboleh ubah input tertentu wujud. Sebagai contoh, untuk memeriksa sama ada pembolehubah pos bernama "Nama Pengguna" wujud, anda boleh melakukan ini:

<code class="language-php"><?php
$email = 'your.email@sitepoint.com';

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo("This email is valid");
}</code>

Atas ialah kandungan terperinci Petua Pantas: Cara Menapis Data dengan PHP. 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