Вступ до 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-адреси, рядка, номера, 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 перед тим, як використовувати будь-які дані cookie для обробки даних.

Рекомендовані статті

Це керівництво по PHP-фільтрам. Тут ми також обговорюємо синтаксис, чому ми використовуємо фільтр у PHP та прикладах. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Рамки PHP
  2. Контекстний фільтр Tableau
  3. Що таке кутовий 2?
  4. Mantis Bug Tracker
  5. Як файли cookie працюють у JavaScript із прикладом?