Úvod do PHP filtrů

Existuje jen velmi málo jazyků, které mají funkce filtru. Filtry jsou jednou z funkcí programovacích jazyků s přidanou hodnotou. To nám pomáhá před zpracováním filtrovat data nebo řetězec. Toto je výzva k použití tohoto času, aby se zabránilo některým problémům se zranitelností v systému. Filtry PHP lze použít za účelem ověření nebo dezinfekce externích vstupů. Filtr PHP je v podstatě rozšíření, které přichází s jeho různými funkcemi a funkcemi, které můžeme použít při kódování. Například bereme klientský vstup z formuláře jako e-mailové id, měli bychom ověřit nebo dezinfikovat před operací související s databází. My jako kodér nebo vývojář bychom měli používat tyto filtry v PHP podle našich obchodních potřeb a požadavků.

Syntax

Sanitizace a filtry jsou nejčastějšími operacemi v prostředí webových aplikací. Zde je základní syntax:

filter_var(variable, filter, options)

Tato funkce filter_var trvá 3 parametry. Poslední 2 parametry, filtr a možnosti jsou volitelné. První z nich je proměnná nebo samotné identifikátory. Toto je ta, kterou chceme filtrovat, druhá je to, co chceme dělat (v tom v podstatě předáme ID dostupných možností v PHP) a poslední z nich jsou možnosti související s filtrem. Pojďme to pochopit na příkladu 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
)
?>

Ve výše uvedeném příkladu používáme filtr a kontrolujeme, zda máme v proměnné $ int_val celočíselnou hodnotu. Tady je tedy výstup pro totéž.

Výstup:

Proč používáme filtr v PHP?

Mnoho webových aplikací PHP přijímá externí vstup od klienta. Myšlenka použití tohoto je vyčistit uživatelský vstup před zpracováním, protože nemůžeme očekávat od uživatele, aby správně vložil všechna data. Jakýkoli externí uživatel nebo systémový vstup nebo data mohou vést ke kritickému bezpečnostnímu problému.

Můžeme zde filtrovat, abychom dezinfikovali data zadaná z různých externích zdrojů, jako například:

  • Přímý vstup od klienta z formuláře
  • Data cookies
  • Data z webových služeb
  • Data proměnných serveru
  • Výsledky databázového dotazu

Filtry PHP a sanitizéry společně umožňují schopnost zjistit, zda je vstup platný nebo ne. Pokud to není platný vstup, můžeme v tomto případě to dezinfikovat, abychom vytvořili platný vstup. V následující části příkladu uvedeme různé příklady, které s tím souvisejí.

Příklad filtru

V PHP jsou k dispozici různé typy filtrů. Tento seznam můžeme zkontrolovat pomocí funkce filter_list (). Tyto funkce filtru lze v zásadě použít k filtrování adresy URL, řetězce, čísla, adresy IP atd.

Příklad č. 1

V této sekci si postupně ukážeme různé ukázkové programy filtrů.

Dezinfikujte řetězec

Kontrola, zda je řetězec platný nebo ne

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

Ve výše uvedeném příkladu vidíme platný řetězec, proto dává platný řetězec.

Výstup:

Získat dezinfikovaný řetězec jako 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ůzné výstupy. Můžeme vidět výstup před dezinfekcí a následná dezinfekce je jiná. Po dezinfekci byly značky HTML odstraněny funkcí filtru PHP.

Výstup:

Příklad č. 2

Ověřte IP adresu

Funkce filtru PHP nám může tuto práci udělat. Podívejme se na pří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ýstup:

Příklad č. 3

Dezinfekce a ověření e-mailové 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);
?>

Ve výše uvedeném příkladu máme neplatnou hodnotu pro ID e-mailu, protože tento výstup získáváme pomocí funkce filtru. Ve chvíli, kdy ji dezinfikujeme, získáte správný e-mail.

Výstup:

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

Ve výše uvedeném příkladu PHP kód kontrolujeme, zda je e-mail platný nebo ne.

Výstup:

Příklad č. 4

Sanitize and Validate URL

V tomto příkladu uvidíme, zda je vstupní adresa platná nebo ne? Pokud to není platná adresa URL, bude ji dezinfikovat, aby byla správná.

<_?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ýstup:

Závěr

Měli bychom použít filtr PHP k ověření nebo dezinfekci vstupu uživatele. Tímto způsobem můžeme omezit vstup zranitelného uživatele. K ověření vstupů uživatele a hodnoty můžeme použít různé funkce filtru PHP. Můžeme také jít na dezinfekci a vyčistit hodnotu (buď uživatelský vstup, nebo přímo přiřazený). Před použitím jakýchkoli dat cookies pro zpracování dat bychom měli používat sanitizer PHP.

Doporučené články

Toto byl průvodce PHP filtry. Tady také diskutujeme syntaxi, proč používáme filtr v PHP a příklady. Další informace naleznete také v následujících článcích -

  1. PHP Frameworks
  2. Filtr kontextu tabla
  3. Co je Angular 2?
  4. Mantis Bug Tracker
  5. Jak fungují soubory cookie v JavaScriptu s příkladem?

Kategorie: