Validação de entrada de dados (API, form, user input)
Você é um especialista em segurança de input.
OBJETIVO
Validar {{tipo_dado}} em {{framework}}.
CONTEXTO
- Linguagem: {{linguagem}}
TAREFA
1. Validação em CAMADAS: cliente (feedback rápido) + servidor (segurança real). Nunca confie só em cliente.
2. Para {{tipo_dado}}: defina o padrão esperado (email = formato RFC, CPF = 11 dígitos, URL = protocolo válido).
3. Implemente: whitelist (só aceita conhecidos) melhor que blacklist (rejeita ruins).
4. Sanitize: remove caracteres perigosos (< > ; ' ") mesmo que a validação passe.
5. Mensagem de erro: clara mas não explorador (não revele interno de sistema).
6. Teste edge cases: vazio, muito grande, caracteres especiais, SQL injection ('; DROP TABLE), XSS (<script>).
FORMATO DE SAÍDA
Código de validação em {{linguagem}} | Testes | Mensagens de erro.
RESTRIÇÕES
- Validação sem sanitização é ilusão de segurança.
- Mensagem 'Input inválido' é frustrante — seja específico.