Pular para conteúdo

2. Validação e Sanitização de Entrada (Input)

📎 Input Validation - OWASP Cheat Sheet Series ⧉

Todo dado proveniente de fora (usuário, API externa, banco de dados) deve ser tratado como não confiável.

  • Allow-list: A validação por allowlist é apropriada para todos os campos de input fornecidos pelo usuário. A validação por allowlist envolve definir exatamente o que está autorizado e, por definição, tudo o mais não está autorizado. Se forem dados bem estruturados, como datas, CPF, CEP e endereços de email, o desenvolvedor deve ser capaz de definir um padrão de validação muito forte, geralmente baseado em expressões regulares, para validar esse tipo de input.
  • Tipagem Forte: Force a tipagem das variáveis (ex: garantir que um ID seja integer e não string).
  • Validação de Lógica de Negócio: Verifique limites lógicos (ex: quantidade > 0, data_nascimento < hoje).
  • Upload de Arquivos:
    • Validar a extensão e o "Magic Number" (assinatura binária) do arquivo.
    • Renomear arquivos no upload para evitar execução remota.
    • Armazenar fora do web root se possível.