Въведение в PHP филтри

Има много малко езици, които имат функции на филтър. Филтрите са една от добавените стойности на езиците за програмиране. Това ни помага да филтрираме данните или низ преди обработката. Това е призивът на времето да се използва това, за да се предотвратят някои проблеми с уязвимостта в системата. PHP филтрите могат да се използват за валидиране или саниране на външните входове. По принцип PHP филтърът е разширение, което предлага своите различни функции и функции, които можем да използваме при кодирането. Например, ние вземаме клиентски вход от формуляр като имейл идентификатор, трябва да валидираме или санираме преди операция, свързана с база данни. Ние като кодер или разработчик трябва да използваме тези филтри в PHP според нашите бизнес нужди и изисквания.

Синтаксис

Дезинфекцията и филтрите са най-честите операции в средата на уеб приложенията. Ето основния синтаксис:

filter_var(variable, filter, options)

Тази функция filter_var приема 3 параметъра. Последните 2 параметъра, филтърът и опциите не са задължителни. Първият е променлива или самите идентификатори. Това е този, който искаме да филтрираме, вторият е това, което искаме да направим (в това основно предаваме идентификатора на наличните опции в PHP), а последният е опциите, свързани с филтъра. Нека да разберем същото с пример за тест:

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

В горния пример използваме филтър и проверяваме дали имаме цяло число в променлива $ int_val или не. И така, тук е изходът за същото.

изход:

Защо използваме Filter в PHP?

Много уеб приложения на PHP получават външен вход от страна на клиента. Идеята, която стои зад това, е да почистим потребителския вход преди обработката, тъй като не можем да очакваме от потребителя да постави всички данни правилно. Всяко въвеждане на данни от външен потребител или система може да доведе до критичен проблем със сигурността.

Тук можем да филтрираме, за да санираме въведените данни от различни външни източници като:

  • Директно въвеждане на потребител от формуляра
  • Данни за бисквитките
  • Данни от уеб услугите
  • Данни на променливите на сървъра
  • Резултати от заявка за база данни

PHP филтрите и дезинсекторите заедно дават възможност да получим дали даден вход е валиден или не. Ако не е валиден вход, в този случай можем да го преосмислим, за да направим валиден. В следващия примерен раздел ще направим различни примери, свързани с това.

Пример за филтър

В PHP се предлагат различни видове филтри. Можем да проверим този списък с помощта на функцията filter_list (). По принцип тези функции на филтъра могат да се използват за филтриране на URL, String, номер, IP адрес и т.н.

Пример №1

В този раздел ще видим различните примерни програми за филтриране една по една.

Санирайте струна

За да проверите дали низът е валиден или не

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

В горния пример можем да видим валиден низ, поради което той дава валидния.

изход:

Вземете дезинфекцирания низ като изход

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

Виждаме, че имаме два различни изхода. Можем да видим резултата преди санирането, а след санирането е различно. След санирането, HTML маркерите са премахнати от функцията за PHP филтър.

изход:

Пример №2

Валидирайте IP адрес

Функцията на PHP филтър може да свърши тази работа за нас. Нека видим примера.

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

изход:

Пример №3

Дезинфекция и валидиране на имейл адрес

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

В горния пример имаме невалидна стойност за идентификационния номер на имейла, тъй като получаваме този изход с помощта на функцията за филтриране. Но в момента, в който го дезинфекцираме, дава правилния имейл.

изход:

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

В горния пример PHP код проверяваме дали имейлът е валиден или не.

изход:

Пример №4

Санирайте и потвърдете URL адреса

В този пример ще видим дали входният URL адрес е валиден или не? Ако не е валиден URL адрес, той ще го пречи, за да го направи правилен.

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

изход:

заключение

Трябва да използваме PHP филтъра, за да валидираме или дезинфекцираме потребителския вход. По този начин можем да ограничим въвеждането на уязвимия потребител. Можем да използваме различните функции на PHP филтър за валидиране на потребителските входове и стойността. Можем също така да предприемем саниране, както и да почистим стойността (или въвеждането на потребителя, или директно зададеното). Винаги трябва да използваме PHP дезинфектанта, преди да използваме данни за бисквитки за обработка на данни.

Препоръчителни статии

Това е ръководство за PHP филтри. Тук също обсъждаме синтаксиса, защо използваме филтър в PHP и примери. Можете също така да разгледате следните статии, за да научите повече -

  1. PHP рамки
  2. Контекстният филтър на Tableau
  3. Какво е Angular 2?
  4. Mantis Bug Tracker
  5. Как бисквитките работят в JavaScript с пример?