Validação de Entrada (Input Validation)
Definição
Validação de Entrada (Input Validation) é o processo de verificar e restringir os dados fornecidos por usuários ou sistemas externos antes de utilizá-los na aplicação.
É uma das primeiras e mais importantes linhas de defesa contra ataques, pois impede que entradas malformadas, maliciosas ou inesperadas causem erros, comportamentos imprevistos ou brechas de segurança.
Objetivos da Validação de Entrada
- Proteger a aplicação contra dados maliciosos ou inválidos.
- Evitar injeções de código e manipulações de comportamento.
- Assegurar que os dados estejam no formato, tipo e faixa esperados.
- Reduzir erros lógicos e falhas de execução na aplicação.
- Fortalecer outras práticas de segurança como autenticação e autorização.
Tipos de validação comuns
- Validação de tipo: garantir que um campo numérico não receba texto.
- Validação de formato: verificar se e-mails, datas ou CPFs seguem o padrão esperado.
- Validação de tamanho: limitar o número de caracteres em entradas.
- Validação por lista de valores permitidos : aceitar apenas entradas válidas conhecidas.
- Validação de faixa (range): garantir que valores numéricos estejam dentro de limites seguros.
Exemplo prático — validação básica com Python
def validar_idade(idade):
if not isinstance(idade, int):
raise ValueError("Idade deve ser um número inteiro.")
if idade < 0 or idade > 130:
raise ValueError("Idade fora da faixa aceitável.")
return True
# Teste
validar_idade(25) # Válido
validar_idade("vinte") # Levanta erro
Boas práticas
Valide no backend, mesmo que haja validação no frontend.
Rejeite tudo que não for explicitamente permitido.
Use bibliotecas validadoras seguras e atualizadas.
Evite confiar em dados de requisições HTTP sem validação.
Separe claramente validação (verificação de formato) de sanitização (remoção de conteúdo perigoso, como scripts).
O ciclo da validação de entrada
[Recebimento de dados externos] → [Validação rigorosa] → [Processamento apenas se válido] → [Aplicação protegida]
Tudo que entra na aplicação precisa ser tratado como não confiável por padrão.