Filtrando dados de variáveis com filter_input()

Dados inválidos não podem passar, filtre seus dados primeiro.

Filtrando dados de variáveis com filter_input()

Um dica muito interessante para manter os dados que entram na sua aplicação confiáveis é sanitizar e validar esses dados sempre, para que seu sistema não corra o risco de ser invadido facilmente.

via GIPHY

Para isso no PHP utilizamos uma função que faz esse papel muito bem e ela é a filter_input(). Com ela podemos filtrar os dados que vem da URL, do corpo da requisição, dos cookies do navegador, dados do servidor, variáveis de ambiente e dados da sessão do usuário. Muita coisa não?! Veja abaixo alguns filtros que você pode utilizar com essa função poderosíssima:

Anatômia da Função filter_input

A assinatura da função se dá da seguinte forma filter_input($tipo, $nomeVariavel, $filter);

1° Parâmetro: Tipos de input do primeiro parâmetro:
– INPUT_GET
– INPUT_POST
– INPUT_COOKIE
– INPUT_SERVER
– INPUT_ENV

2° Parâmetro: Nome da variável que desejamos filtrar que se encontra dentro do primeiro parâmetro.

3° Parâmetro: O ID do filtro que queremos aplicar na variável. Se nada for colocado neste parâmetro o filtro FILTER_DEFAULT será usado ‘automagicamente’.

TIPOS DE FILTROS

Estes são os Tipos de Filtros disponiveis para usar neste 3° parâmetro
# Filtros Sanitizadores (Sanitize filters)
– FILTER_SANITIZE_EMAIL : para remover caracteres que não são de e-mail
– FILTER_SANITIZE_ENCODED: Codifica uma Url para que possa ser manipulada com segurança
– FILTER_SANITIZE_SPECIAL_CHARS: Escapa entidades HTML

# Filtros Validadores (Validate filters)
– FILTER_VALIDATE_BOOLEAN : Valida um dado para retornar TRUE ou FALSE
– FILTER_VALIDATE_DOMAIN : Valida se um nome de domínio é valido
– FILTER_VALIDATE_EMAIL : Valida se é um e-mail válido
– FILTER_VALIDATE_IP: Valida se é um IP válido

A lista completa de filtros você pode encontrar aqui: http://php.net/manual/en/filter.filters.validate.php

// Essa classe tem um método que filtrará os dados passados pela url usando o INPUT_GET
class Router {
	public static function getParam($name, $filter = FILTER_DEFAULT) {
		return filter_input(INPUT_GET, $name, $filter);
	}
}

// Filtra a variável 'search' passada na URL usando o filtro FILTER_SANITIZE_ENCODED
$searchURL = Router::getParam("search", FILTER_SANITIZE_ENCODED);

// Filtra a variável 'search' passada na URL usando o filtro FILTER_SANITIZE_SPECIAL_CHARS
$searchHTML = Router::getParam("search", FILTER_SANITIZE_SPECIAL_CHARS);

Se tudo der certo a função retornar sua variável filtrada, se retornar FALSE então é porque o filtro falhou e se retornar NULL é porque a variável que você disse no 2° parâmetro não foi encontrada.

Até mais amiguinhos, compartilhe essa dica matadora!

Julio Alves
administrator
Julio Alves é desenvolvedor web com mais de 8 anos de experiência, amante de PHP, Javascript, NodeJS, Ionic e ReactNative. Graduado em Sistemas de Informação pela Faculdade Estácio FIC do Ceará. Acredita que para se tornar um bom programador é preciso sobretudo ser esforçado e aberto para aprender todos os dias.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Lançamento Novo Curso de PHP 7
Lançamento Novo Curso de PHP 7