Introdução aos filtros PHP

Existem muito poucos idiomas que possuem recursos de filtro. Os filtros são um dos recursos de valor agregado das linguagens de programação. Isso nos ajuda a filtrar os dados ou a string antes do processamento. Esta é a hora de usar isso para evitar alguns problemas de vulnerabilidade no sistema. Os filtros PHP podem ser usados ​​com a finalidade de validar ou higienizar as entradas externas. Basicamente, o filtro PHP é uma extensão que apresenta suas várias funções e os recursos que podemos usar durante a codificação. Por exemplo, como estamos recebendo informações do cliente de um formulário como ID de email, devemos validar ou limpar antes da operação relacionada ao banco de dados. Nós, como codificador ou desenvolvedor, devemos usar esses filtros em PHP de acordo com nossas necessidades e requisitos de negócios.

Sintaxe

A limpeza e os filtros são as operações mais comuns no ambiente de aplicativos da web. Aqui está a sintaxe básica:

filter_var(variable, filter, options)

Esta função filter_var usa 3 parâmetros. Os últimos 2 parâmetros, filtro e as opções são opcionais. O primeiro é uma variável ou o próprio identificador. Esse é o que queremos filtrar, o segundo é o que queremos fazer (neste, basicamente passamos o ID das opções disponíveis no PHP), e o último é as opções relacionadas ao filtro. Vamos entender o mesmo com um exemplo de teste:

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

No exemplo acima, estamos usando um filtro e verifique se temos um valor inteiro na variável $ int_val ou não. Então, aqui está a saída para o mesmo.

Resultado:

Por que usamos o filtro em PHP?

Muitos aplicativos da web PHP recebem entrada externa do lado do cliente. A idéia por trás disso é limpar a entrada do usuário antes do processamento, pois não podemos esperar que o usuário coloque todos os dados corretamente. Qualquer entrada ou dado de usuário ou sistema externo pode levar a um problema crítico de segurança.

Podemos filtrar aqui para limpar os dados inseridos de várias fontes externas, como:

  • Entrada direta de usuário do cliente a partir do formulário
  • Dados de Cookies
  • Dados dos serviços da Web
  • Dados das variáveis ​​do servidor
  • Resultados da consulta ao banco de dados

Os filtros PHP e os desinfetantes juntos permitem a capacidade que podemos obter, se uma entrada é válida ou não. Se não for uma entrada válida, nesse caso, podemos limpar isso para torná-la válida. Na próxima seção de exemplo, apresentaremos vários exemplos relacionados a isso.

Exemplo de filtro

Existem vários tipos de filtros disponíveis no PHP. Podemos verificar essa lista usando a função filter_list (). Basicamente, essas funções de filtro podem ser usadas para filtrar a URL, String, número, endereço IP, etc.

Exemplo 1

Nesta seção, veremos os vários programas de exemplo de filtro, um por um.

Sanitize a String

Para verificar se uma sequência é válida ou não

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

No exemplo acima, podemos ver uma string válida e é por isso que ela fornece a string válida.

Resultado:

Obter a sequência higienizada como saída

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

Podemos ver que temos duas saídas diferentes. Podemos ver a saída antes da higienização e a higienização posterior é diferente. Após a limpeza, as tags HTML foram removidas pela função de filtro PHP.

Resultado:

Exemplo 2

Validar um endereço IP

A função de filtro PHP pode fazer esse trabalho por nós. Vamos ver o exemplo.

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

Resultado:

Exemplo 3

Limpando e validando um endereço de email

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

No exemplo acima, temos um valor inválido para o ID do email, pois estamos obtendo essa saída usando a função de filtro. Porém, no momento em que higienizamos, o e-mail é correto.

Resultado:

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

No exemplo de código PHP acima, estamos verificando se o email é válido ou não.

Resultado:

Exemplo 4

Limpar e validar URL

Neste exemplo, veremos se um URL de entrada é válido ou não? Se não for um URL válido, ele será higienizado para torná-lo correto.

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

Resultado:

Conclusão

Devemos usar o filtro PHP para validar ou higienizar a entrada do usuário. Dessa forma, podemos restringir a entrada do usuário vulnerável. Podemos usar as várias funções de filtro PHP para validar as entradas e o valor do usuário. Também podemos limpar e limpar o valor (a entrada do usuário ou a designada diretamente). Sempre devemos usar o desinfetante PHP antes de usar quaisquer dados de cookies para o processamento de dados.

Artigos recomendados

Este foi um guia para os filtros PHP. Aqui também discutimos a sintaxe, por que usamos um filtro em PHP e exemplos. Você também pode dar uma olhada nos seguintes artigos para saber mais:

  1. Frameworks PHP
  2. Filtro de contexto do Tableau
  3. O que é Angular 2?
  4. Mantis Bug Tracker
  5. Como os Cookies funcionam em JavaScript com o Exemplo?