Introduktion til PHP-filtre

Der er meget få sprog, der har filterfunktioner. Filtre er en af ​​værdiforøgelsesfunktionerne i programmeringssprog. Dette hjælper os med at filtrere dataene eller strengen før behandling. Dette er tidspunktet for at bruge dette til at forhindre nogle sårbarhedsproblemer i systemet. PHP-filtre kan bruges til validering eller sanering af de eksterne input. Grundlæggende er PHP-filteret en udvidelse, der kommer med sine forskellige funktioner og de funktioner, vi kan bruge, mens vi koder. For eksempel tager vi klientinput fra en formular som e-mail-id, vi skal validere eller desinficere inden databaseaktivitet. Vi som koder eller udvikler skal bruge disse filtre i PHP i henhold til vores forretningsbehov og krav.

Syntaks

Rensning og filtrene er de mest almindelige handlinger i webapplikationsmiljøet. Her er den grundlæggende syntaks:

filter_var(variable, filter, options)

Denne funktion filter_var tager 3 parametre. De sidste 2 parametre, filter og indstillinger er valgfri. Den første er en variabel eller selve identifikatorerne. Dette er den ene, vi vil filtrere, den anden er, hvad vi vil gøre (i dette passerer vi grundlæggende ID for de tilgængelige indstillinger i PHP), og den sidste er de filterrelaterede indstillinger. Lad os forstå det samme med et quizeksempel:

<_?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
)
?>

I ovenstående eksempel bruger vi et filter og kontrollerer, om vi har en heltalværdi i variablen $ int_val eller ej. Så her er output for det samme.

Produktion:

Hvorfor bruger vi Filter i PHP?

Mange PHP-webapplikationer modtager ekstern input fra klientsiden. Ideen bag at bruge dette er at rense brugerinput før behandling, da vi ikke kan forvente af brugeren at placere alle data korrekt. Enhver ekstern bruger- eller systeminput eller -data kan føre til et kritisk sikkerhedsproblem.

Vi kan filtrere her for at rense data indtastet fra forskellige eksterne kilder som:

  • Direkte klientbrugerinput fra formularen
  • Data om cookies
  • Data fra webservices
  • Data om servervariablerne
  • Resultat af databaseforespørgsel

PHP-filtre og desinfektionsanordninger tillader sammen den mulighed, vi kan få, om et input er gyldigt eller ej. Hvis ikke et gyldigt input, kan vi i dette tilfælde desinficere det for at gøre et gyldigt. I det kommende eksempelafsnit vil vi forskellige eksempler relateret til dette.

Eksempel på filter

Der er forskellige typer filtre tilgængelige i PHP. Vi kan kontrollere den liste ved hjælp af funktionen filter_list (). Grundlæggende kan disse filterfunktioner bruges til at filtrere URL, streng, nummer, IP-adresse osv.

Eksempel 1

I dette afsnit vil vi se de forskellige filtereksempelprogrammer en efter en.

Rens en streng

For at kontrollere, om en streng er gyldig eller ikke

<_?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
)
?>

I ovenstående eksempel kan vi se en gyldig streng, det er derfor, den giver den gyldige.

Produktion:

Hent den desinficerede streng som output

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

Vi kan se, at vi har to forskellige output. Vi kan se output før sanering og efter sanitering er anderledes. Efter sanering er HTML-tags fjernet af PHP-filterfunktionen.

Produktion:

Eksempel 2

Valider en IP-adresse

PHP-filterfunktion kan gøre dette job for os. Lad os se eksemplet.

<_?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
)
?>

Produktion:

Eksempel 3

Rensning og validering af en e-mail-adresse

<_?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);
?>

I ovenstående eksempel har vi en ugyldig værdi for e-mail-id, da vi får denne output ved hjælp af filterfunktionen. Men i det øjeblik vi renser det giver den rigtige e-mail.

Produktion:

<_?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
)
?>

I ovenstående eksempel PHP-kode kontrollerer vi, om e-mailen er gyldig eller ikke.

Produktion:

Eksempel 4

Rens og bekræft URL

I dette eksempel vil vi se, om en input-URL er gyldig eller ej? Hvis ikke en gyldig URL, sanerer det den for at gøre den korrekt.

<_?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);
?>

Produktion:

Konklusion

Vi bør bruge PHP-filteret til at validere eller desinficere brugerinput. På denne måde kan vi begrænse den sårbare brugerinput. Vi kan bruge de forskellige PHP-filterfunktioner til validering af brugerindgange og værdien. Vi kan også gå til at desinficere værdien (enten brugerinput eller den direkte tildelte). Vi skal altid bruge PHP-sanitizer, før vi bruger nogen cookies-data til databehandlingen.

Anbefalede artikler

Dette har været en guide til PHP-filtre. Her diskuterer vi også syntaks, hvorfor vi bruger et filter i PHP og eksempler. Du kan også se på de følgende artikler for at lære mere–

  1. PHP-rammer
  2. Tableau-kontekstfilter
  3. Hvad er Angular 2?
  4. Mantis Bug Tracker
  5. Hvordan fungerer cookies i JavaScript med eksempel?

Kategori: