Úvod do PHP filtrov

Existuje veľmi málo jazykov, ktoré majú funkcie filtra. Filtre sú jednou z funkcií programovacích jazykov s pridanou hodnotou. To nám pomáha filtrovať údaje alebo reťazec pred spracovaním. Toto je výzva na použitie tohto času, aby ste zabránili problémom so zraniteľnosťou v systéme. Filtre PHP sa môžu použiť na účely overenia alebo dezinfekcie externých vstupov. V podstate je PHP filter rozšírením, ktoré prichádza s jeho rôznymi funkciami a funkciami, ktoré môžeme použiť pri kódovaní. Napríklad berieme vstup klienta z formulára ako e-mailové ID, mali by sme overiť alebo dezinfikovať pred operáciou týkajúcou sa databázy. My ako programátor alebo vývojár by sme mali tieto filtre používať v PHP podľa našich obchodných potrieb a požiadaviek.

syntax

Sanitizácia a filtre sú najbežnejšie operácie v prostredí webových aplikácií. Tu je základná syntax:

filter_var(variable, filter, options)

Táto funkcia filter_var má 3 parametre. Posledné 2 parametre, filter a možnosti sú voliteľné. Prvou je premenná alebo samotné identifikátory. Toto je ten, ktorý chceme filtrovať, druhý je to, čo chceme robiť (v tomto prípade v PHP zásadne odovzdáme ID dostupných možností) a posledný je možnosť súvisiaca s filtrom. Pochopme to isté s príkladom kvízu:

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

Vo vyššie uvedenom príklade používame filter a skontrolujeme, či máme celočíselnú hodnotu v premennej $ int_val alebo nie. Takže tu je výstup pre rovnaké.

Výkon:

Prečo používame filter v PHP?

Mnoho webových aplikácií PHP prijíma externý vstup od klienta. Hlavnou myšlienkou použitia tohto postupu je vyčistiť vstup používateľa pred spracovaním, pretože nemôžeme očakávať, že používateľ správne uloží všetky údaje. Každý externý používateľ alebo systémový vstup alebo údaje môžu viesť k kritickému bezpečnostnému problému.

Môžeme tu filtrovať, aby sme dezinfikovali údaje zadané z rôznych externých zdrojov, ako napríklad:

  • Priamy vstup od klienta z formulára
  • Údaje o cookies
  • Údaje z webových služieb
  • Dáta premenných servera
  • Výsledky databázových dopytov

Filtre PHP a sanitizéry spolu umožňujú schopnosť zistiť, či je vstup platný alebo nie. Ak to nie je platný vstup, v tomto prípade to môžeme dezinfikovať, aby sme vytvorili platný vstup. V nasledujúcej ukážkovej časti uvedieme niekoľko príkladov, ktoré s tým súvisia.

Príklad filtra

V PHP sú k dispozícii rôzne typy filtrov. Tento zoznam môžeme skontrolovať pomocou funkcie filter_list (). V zásade možno tieto filtračné funkcie použiť na filtrovanie adresy URL, reťazca, čísla, adresy IP atď.

Príklad č. 1

V tejto časti si ukážeme jednotlivé príklady programov filtra jeden po druhom.

Dezinfikujte reťazec

Skontrolujte, či je reťazec platný alebo nie

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

Vo vyššie uvedenom príklade vidíme platný reťazec, a preto poskytuje platný reťazec.

Výkon:

Získajte dezinfikovaný reťazec ako výstup

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

Vidíme, že máme dva rôzne výstupy. Výstup môžeme vidieť pred dezinfekciou a následná dezinfekcia je iná. Po dezinfekcii boli značky HTML odstránené funkciou filtra PHP.

Výkon:

Príklad č. 2

Overte IP adresu

Túto funkciu môže vykonať funkcia filtra PHP. Pozrime sa na príklad.

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

Výkon:

Príklad č. 3

Dezinfikovanie a overenie e-mailovej adresy

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

Vo vyššie uvedenom príklade máme neplatnú hodnotu pre ID e-mailu, pretože tento výstup získavame pomocou funkcie filtra. V okamihu, keď ho dezinfikujeme, získate správny e-mail.

Výkon:

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

Vo vyššie uvedenom príklade PHP kód kontrolujeme, či je e-mail platný alebo nie.

Výkon:

Príklad č. 4

Dezinfikujte a overte webovú adresu

V tomto príklade uvidíme, či je vstupná adresa URL platná alebo nie? Ak to nie je platná adresa URL, bude ju dezinfikovať, aby sa opravila.

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

Výkon:

záver

Mali by sme použiť filter PHP na overenie alebo dezinfekciu vstupu používateľa. Týmto spôsobom môžeme obmedziť vstup zraniteľného používateľa. Na overenie užívateľských vstupov a hodnoty môžeme použiť rôzne funkcie filtra PHP. Môžeme tiež ísť na dezinfekciu, aby sme vyčistili hodnotu (buď užívateľský vstup, alebo priamo priradený). Pred použitím akýchkoľvek údajov cookies na spracovanie údajov by sme mali vždy používať sanitizer PHP.

Odporúčané články

Toto bol sprievodca pre PHP filtre. Tu tiež diskutujeme syntax, prečo používame filter v PHP a príklady. Ak sa chcete dozvedieť viac, môžete si pozrieť aj nasledujúce články -

  1. Rámce PHP
  2. Kontextový filter tabuľky
  3. Čo je Angular 2?
  4. Mantis Bug Tracker
  5. Ako fungujú súbory cookie v jazyku JavaScript s príkladom?

Kategórie: