Introducere în filtrele PHP

Există foarte puține limbi care au funcții de filtrare. Filtrele sunt una dintre caracteristicile cu valoare adăugată ale limbajelor de programare. Acest lucru ne ajută să filtrăm datele sau șirul înainte de procesare. Acesta este apelul momentului de a utiliza acest lucru pentru a preveni unele probleme de vulnerabilitate în sistem. Filtrele PHP pot fi utilizate în scopul validării sau igienizării intrărilor externe. Practic, filtrul PHP este o extensie care vine cu diversele sale funcții și funcțiile pe care le putem folosi în timpul codării. De exemplu, preluăm introducerea clientului dintr-un formular ca id de e-mail, ar trebui să validăm sau să igienizăm înainte de operarea aferentă bazei de date. Noi, în calitate de codificator sau dezvoltator, ar trebui să folosim aceste filtre în PHP, în funcție de nevoile noastre de afaceri și cerințele noastre.

Sintaxă

Sanitizarea și filtrele sunt cele mai frecvente operații în mediul de aplicație web. Iată sintaxa de bază:

filter_var(variable, filter, options)

Această funcție filter_var are 3 parametri. Ultimii 2 parametri, filtru și opțiuni sunt opționale. Prima este o variabilă sau identificatorii înșiși. Acesta este cel pe care vrem să-l filtrăm, al doilea este ceea ce vrem să facem (în principiu, trecem ID-ul opțiunilor disponibile în PHP), iar ultima este opțiunile legate de filtru. Să înțelegem același lucru cu un exemplu de testare:

<_?php
$int_val = 200;
if(filter_var($int_val, FILTER_VALIDATE_INT))(
echo "The $int_val is a valid one."; // valid
) else(
echo "The $int_val not a valid input as an integer"; // invalid
)
?>

În exemplul de mai sus, folosim un filtru și verificăm dacă avem o valoare întreagă în variabila $ int_val sau nu. Deci, aici este ieșirea pentru același lucru.

ieşire:

De ce folosim Filtru în PHP?

Multe aplicații web PHP primesc input extern din partea clientului. Ideea din spatele acestei utilizări este de a curăța intrarea utilizatorului înainte de procesare, deoarece nu ne putem aștepta de la utilizator să pună toate datele corect. Orice utilizator sau sistem extern de intrare sau date poate duce la o problemă critică de securitate.

Putem filtra aici pentru igienizarea datelor introduse din diferite surse externe, cum ar fi:

  • Intrare directă de către client din formular
  • Datele cookie-urilor
  • Date de la serviciile web
  • Date ale variabilelor server
  • Rezultatele interogării bazei de date

Filtrele PHP și agenții de igienizare permit împreună posibilitatea de a obține dacă o intrare este valabilă sau nu. Dacă nu este o intrare valabilă, în acest caz, putem să o igienizăm pentru a face una valabilă. În secțiunea ce urmează, vom prezenta diverse exemple legate de acest lucru.

Exemplu de filtru

Există diferite tipuri de filtre disponibile în PHP. Putem verifica acea listă folosind funcția filter_list (). Practic, aceste funcții de filtrare pot fi utilizate pentru a filtra adresa URL, șirul, numărul, adresa IP etc.

Exemplul # 1

În această secțiune, vom vedea diferite programe de exemple de filtru unul câte unul.

Sanitizează o șir

Pentru a verifica dacă un șir este valid sau nu

<_?php
$comment = "Hello word";
if(filter_var($comment, FILTER_SANITIZE_STRING))(
echo "The $comment is a valid one."; // valid
) else(
echo "The $comment not a valid input"; // invalid
)
?>

În exemplul de mai sus, putem vedea un șir valid, de aceea îl oferă pe cel valid.

ieşire:

Obțineți șirul igienizat ca ieșire

<_?php
$comment = " Hello word ";
echo "Before sanitizing: ". $comment;
$comment = filter_var($comment, FILTER_SANITIZE_STRING);
echo "
"; // for new line
echo "After sanitizing: ". $comment;
?>

Putem vedea că avem două rezultate diferite. Putem vedea ieșirea înainte de igienizare și după igienizare este diferită. După igienizare, etichetele HTML au fost eliminate prin funcția de filtrare PHP.

ieşire:

Exemplul # 2

Validați o adresă IP

Funcția de filtrare PHP poate face acest lucru pentru noi. Să vedem exemplul.

<_?php
$ip_address = "172.16.254.1:40";
if(filter_var($ip_address, FILTER_VALIDATE_IP))(
echo "The $ip_address is a valid one."; // valid
) else(
echo "The $ip_address is not a valid input"; // invalid
)
?>

ieşire:

Exemplul # 3

Sanitizarea și validarea unei adrese de e-mail

<_?php
$email_address = " @testmail.com";
code>
echo "Before Sanitizing: " . $email_address ."
";
if(filter_var($email_address, FILTER_VALIDATE_EMAIL))(
echo "The $email_address is a valid one."; // valid
) else(
echo "The $email_address not a valid input"; // invalid
)
echo "
";
echo "After Sanitizing: " . filter_var($email_address, FILTER_SANITIZE_EMAIL);
?>

În exemplul de mai sus, avem o valoare nevalidă pentru id-ul de e-mail, deoarece obținem această ieșire folosind funcția de filtrare. Dar momentul în care îl igienizăm dă un e-mail corect.

ieşire:

<_?php
$email_address = " ";
if(filter_var($email_address, FILTER_VALIDATE_EMAIL))(
echo "The $email_address is a valid one."; // valid
) else(
echo "The $email_address not a valid input"; // invalid
)
?>

În exemplul de mai sus, codul PHP, verificăm dacă e-mailul este valid sau nu.

ieşire:

Exemplul # 4

Sanitizare și validare URL

În acest exemplu, vom vedea dacă o adresă URL de intrare este validă sau nu? Dacă nu este o adresă URL validă, va elimina acest lucru pentru a-l corecta.

<_?php
$URL = "https://www.educba.com/ courses ";
echo "Before Sanitizing: " . $URL ."
";
if(filter_var($URL, FILTER_VALIDATE_URL))(
echo "The $URL is a valid one."; // valid
) else(
echo "The $URL is not a valid input"; // invalid
)
echo "
";
echo "After Sanitizing: " . filter_var($URL, FILTER_SANITIZE_URL);
?>

ieşire:

Concluzie

Ar trebui să folosim filtrul PHP pentru a valida sau igieniza intrarea utilizatorului. În acest fel, putem restricționa intrarea utilizatorilor vulnerabili. Putem folosi diversele funcții de filtrare PHP pentru validarea intrărilor utilizatorului și a valorii. Putem, de asemenea, să facem igienizare și să curățăm valoarea (fie de la intrarea utilizatorului, fie direct atribuită). Ar trebui să folosim întotdeauna produsul de desfacere PHP înainte de a utiliza datele cookie-urilor pentru prelucrarea datelor.

Articole recomandate

Acesta a fost un ghid pentru filtrele PHP. Aici discutăm și sintaxa, de ce folosim un filtru în PHP și exemple. De asemenea, puteți arunca o privire asupra articolelor următoare pentru a afla mai multe -

  1. Cadre PHP
  2. Masa filtru de context
  3. Ce este unghiul 2?
  4. Mantis Bug Tracker
  5. Cum funcționează Cookie-urile în JavaScript cu Exemplu?