A OWASP inclui a enumeração de contas entre os testes de segurança de aplicações web, e recomenda avaliar diferenças que possam revelar se uma conta existe (guia de testes da OWASP). Para o teste de cadastro e enumeração de contas, use endereços e contas controlados, compare cadastro, recuperação e troca de e-mail, e trate respostas, mensagens e estado final como evidências separadas — nunca como um veredito isolado.
Sintoma: uma resposta, um tempo de processamento ou uma mensagem diferente pode indicar que o sistema reconhece um endereço.
Ação imediata: reproduza o cenário em ambiente autorizado, registre o que cada camada revela e confirme o estado da conta antes de classificar o risco.
Este guia é para desenvolvedores que mantêm o cadastro do próprio produto e querem avaliar o tratamento de endereços já utilizados.
Também atende equipes de QA que precisam conferir respostas, mensagens de e-mail e mudanças de estado nos fluxos de identidade.
Quem prepara testes em ambiente de pré-produção encontra aqui um roteiro de verificação sem instruções para enumerar contas de terceiros.
Escopo do teste de cadastro e enumeração de contas
O objetivo é verificar se alguém de fora consegue inferir o estado de uma conta observando o comportamento do produto. Isso não exige enviar solicitações a serviços de terceiros: basta preparar casos controlados no próprio sistema, com endereços que a equipe administra e estados conhecidos.
A OWASP recomenda atenção à enumeração em fluxos de autenticação e identidade. Essa orientação não determina que todo produto use a mesma frase, o mesmo fluxo de confirmação ou a mesma política de troca de endereço. A implementação precisa considerar o modelo de ameaça, a experiência esperada e a avaliação de segurança do produto. A Authentication Cheat Sheet da OWASP é uma referência para avaliar se as respostas oferecem informações desnecessárias sobre contas.
Na prática, separe três fluxos que costumam ter regras e efeitos diferentes: cadastro, recuperação de senha e alteração de e-mail. Em cada um, compare os resultados de um endereço controlado sem conta com os de outro que já esteja associado a uma conta de teste. A comparação serve para levantar diferenças; a interpretação depende do contexto do produto.
Não conclua que o sistema está seguro porque a página exibe uma mensagem genérica. Uma resposta HTTP diferente, um comportamento de processamento observavelmente distinto, uma mensagem inesperada ou uma alteração indevida no estado da conta pode contradizer o que a interface sugere. Da mesma forma, uma mensagem de e-mail recebida confirma algo sobre a entrega e o fluxo, mas não prova, sozinha, que todas as proteções estão corretas.
Cadastro: mensagens externas e criação de conta
Como testar se a página de cadastro revela que um endereço já foi registrado?
Prepare dois endereços sob controle da equipe: um associado a uma conta de teste e outro ainda não registrado. Mantenha as condições do teste equivalentes — por exemplo, use o mesmo ambiente, a mesma versão da aplicação e os mesmos campos de cadastro. Não use endereços de pessoas reais nem tente descobrir o estado de contas fora do escopo autorizado.
Envie cada caso pelo fluxo normal e registre separadamente:
- o texto mostrado na página;
- o código e o conteúdo relevante da resposta HTTP;
- o comportamento observável durante o processamento;
- se algum e-mail previsto pela regra de negócio chegou ao endereço controlado;
- o estado da conta depois da tentativa.
Se a interface confirmar diretamente que um endereço já está registrado, o produto está expondo essa informação naquele fluxo. Uma resposta diferente no protocolo ou uma diferença reproduzível em outras camadas também merece análise, mesmo que a página mostre uma mensagem ampla. A documentação de validação e verificação de e-mail da OWASP ajuda a distinguir validação do endereço, verificação de posse e decisões relacionadas à identidade.
Uma opção de desenho é apresentar uma resposta externa consistente e comunicar ao usuário os próximos passos por um canal apropriado, quando isso fizer sentido para o produto. Não trate essa opção como uma exigência universal: o texto, a confirmação e as exceções devem ser definidos conforme a política da aplicação e revistos por quem responde pela segurança e pela experiência do usuário.
| Caso controlado | O que comparar | O que a evidência permite concluir |
|---|---|---|
| Endereço sem conta | Resposta visível, resposta HTTP, mensagem prevista e estado final | Mostra como o sistema reage a um endereço que ainda não está associado a uma conta |
| Endereço com conta | Os mesmos elementos registrados para o caso anterior | Permite localizar diferenças observáveis entre os estados |
| Tentativa repetida no mesmo ambiente | Reprodutibilidade dos resultados e consistência entre execuções | Ajuda a separar um comportamento persistente de uma observação isolada |
A comparação deve preservar o contexto. Um erro de validação de formato, por exemplo, não equivale à confirmação de que uma conta existe. Se os casos não usam as mesmas condições, diferenças de resposta podem refletir dados inválidos, falhas do ambiente ou regras diferentes — não necessariamente enumeração.
Recuperação de senha: resposta uniforme e e-mail esperado
Como verificar o risco de enumeração no fluxo de recuperação?
Repita o teste com endereços controlados que representem os estados relevantes para a recuperação: um associado a uma conta e outro sem associação. Compare a resposta exibida e a resposta da aplicação. A Forgot Password Cheat Sheet da OWASP aborda a recuperação de senha e a necessidade de evitar respostas que entreguem informação desnecessária sobre a existência de contas.
A resposta uniforme é um sinal importante a avaliar, mas não encerra o teste. Confira também se o sistema enviou a mensagem esperada, para qual endereço, e se a tentativa alterou a conta. Para o endereço associado, a mensagem pode fazer parte do fluxo de recuperação previsto. Para o endereço sem conta, não presuma que o comportamento correto seja sempre o mesmo em todo produto: valide a regra definida para a aplicação e verifique se o resultado externo não entrega um estado que deveria permanecer privado.
O e-mail é evidência do funcionamento de uma etapa, não uma prova completa de segurança. Analise se a mensagem corresponde à solicitação, se o link ou código leva ao fluxo correto e o que ocorre depois do uso. As recomendações da OWASP devem ser aplicadas considerando a implementação e o contexto do produto; não implicam que toda aplicação tenha de adotar uma implementação idêntica.
Registre ainda se o pedido de recuperação gerou efeitos não previstos. Um teste bem-sucedido precisa confirmar o estado final: a tentativa não deve, por si só, redefinir a senha ou modificar a conta antes das etapas de confirmação previstas no produto. Para avaliar a implementação do link de redefinição, use os critérios da orientação da OWASP sobre recuperação de senha, sem substituir a revisão do código por uma inspeção da caixa de entrada.
Troca de e-mail: confirmação e vínculo com a identidade
A alteração do endereço afeta tanto a possibilidade de contato quanto a associação entre a pessoa e a conta. Por isso, avalie o endereço atual e o novo separadamente. Use uma conta de teste e endereços controlados; não considere o recebimento de uma mensagem, por si só, como prova de que a troca foi validada com segurança.
O que conferir na validação de e-mail?
Antes de concluir a alteração, registre a mensagem exibida e identifique quais endereços recebem notificações conforme a política do produto. Verifique se o endereço atual recebe uma notificação quando isso faz parte do desenho esperado, e se o novo endereço recebe a mensagem necessária para confirmar a posse, caso esse seja o fluxo implementado. A OWASP apresenta recomendações sobre verificação de endereços, mas os detalhes da confirmação dependem do produto e não devem ser tratados como uma regra uniforme para todas as aplicações (orientação da OWASP para e-mail).
Confira o vínculo da conta em cada etapa. Para tornar a análise legível, registre se o endereço está verificado, aguardando confirmação ou em falha, conforme os estados existentes na aplicação. Essa classificação deve refletir o comportamento real do produto, não apenas o rótulo que aparece na interface.
Depois, teste o que acontece quando a pessoa ainda não confirmou o novo endereço. A conta continua associada ao endereço antigo, fica em estado pendente ou segue outra regra documentada? E após a confirmação, qual endereço fica associado? Essas são decisões de produto que precisam estar claras para a equipe de QA e para a revisão de segurança.
Receber uma mensagem no endereço novo confirma que aquela caixa recebeu uma mensagem. Isso não confirma, por si só, que a aplicação manteve o vínculo correto com a conta ou impediu uma alteração prematura.
Matriz de evidências e critérios de interpretação
Uma avaliação útil não mistura sinais de camadas distintas. Organize os achados em uma matriz que permita investigar cada diferença sem tirar conclusões além do que os dados sustentam.
| Evidência observada | Pergunta de análise | Limite da evidência |
|---|---|---|
| Texto na interface | O produto informa diretamente se o endereço está associado a uma conta? | Uma mensagem ampla não exclui diferenças em outras camadas |
| Resposta HTTP | O resultado do protocolo varia conforme o estado controlado? | A diferença pode ter outra causa; é preciso reproduzir e explicar |
| Tempo de processamento | Há uma diferença repetível sob condições equivalentes? | Uma observação isolada não define uma falha nem estabelece um limite universal |
| Mensagem recebida | O endereço controlado recebeu a mensagem prevista para aquele fluxo? | A entrega não substitui análise de acesso, código ou estado da conta |
| Estado final | O cadastro, a recuperação ou a alteração ocorreu conforme a política do produto? | Um estado correto em um caso não comprova a segurança de todos os caminhos |
Quando observar diferenças de tempo, faça novas execuções sob as mesmas condições do ambiente e registre os resultados. Não adote um limiar genérico sem fonte ou validação própria: a variação normal de infraestrutura, fila de e-mail e carga pode influenciar o resultado. O importante é verificar se a diferença pode ser reproduzida e se existe uma explicação técnica compatível com o comportamento esperado.
Essa matriz organiza cinco tipos de evidência, mas eles não têm o mesmo peso para todas as aplicações. Uma diferença na resposta pode exigir revisão do código; uma mensagem inesperada pode apontar para uma regra de negócio; um estado incorreto pode demonstrar um problema mais direto no fluxo. Documente o que foi visto antes de atribuir causa ou gravidade.
Evidências reproduzíveis, sem ampliar o tráfego
O objetivo é avaliar o próprio produto, não aumentar o volume de solicitações nem testar a capacidade de enumerar endereços. Um roteiro reproduzível pode ser executado assim:
- [ ] Delimite a autorização. Registre o produto, o ambiente e os fluxos aprovados para o teste. Não faça solicitações a serviços de terceiros.
- [ ] Prepare endereços controlados. Separe endereços que representem os estados necessários e confirme que a equipe pode acessar as caixas usadas na verificação.
- [ ] Documente o estado inicial. Anote se cada endereço está associado a uma conta, se foi verificado e quais condições relevantes se aplicam.
- [ ] Execute cada fluxo separadamente. Avalie cadastro, recuperação de senha e troca de e-mail conforme a regra prevista para cada um; não combine resultados de cenários diferentes.
- [ ] Registre as respostas por camada. Salve o que a interface mostra, a resposta HTTP, os tempos observados, as mensagens recebidas e o estado final.
- [ ] Reproduza diferenças relevantes. Repita o caso em condições equivalentes para verificar se a observação é consistente. Não transforme um tempo específico em parâmetro universal.
- [ ] Explique o resultado. Vincule cada diferença a uma hipótese verificável, revise a lógica pertinente e registre o que ainda precisa de análise.
- [ ] Valide a correção. Depois de uma mudança, rode novamente os cenários afetados e confira tanto o resultado externo quanto o estado da conta.
Para o registro de cada execução, mantenha pelo menos o identificador do caso, o estado inicial da conta, o resultado observado, a evidência de recebimento e o estado final. Use identificadores internos que não exponham dados pessoais em relatórios compartilhados. Em ambientes de pré-produção, prefira dados sintéticos e endereços de teste sob controle da equipe; isso reduz a exposição desnecessária de informações pessoais e evita que mensagens de validação contaminem caixas de trabalho.
Limites do teste com e-mail
O teste com um endereço de recebimento ajuda a conferir o conteúdo da mensagem, o destino, o link ou código previsto e a sequência do fluxo. Para esse uso, avalie as informações divulgadas pelo provedor de recebimento que a equipe considera: se exige cadastro, como funciona o acesso à caixa, se oferece encaminhamento, qual é a validade do endereço e por quanto tempo mantém mensagens. Não presuma essas características sem confirmação na página atual do serviço.
A página do tempget pode ser consultada para avaliar as informações disponíveis sobre endereços de teste. A equipe deve verificar diretamente o que está descrito antes de incluir qualquer ferramenta no procedimento. Uma caixa de recebimento, temporária ou não, não substitui revisão de código, análise de controle de acesso, testes de autorização nem uma avaliação de segurança completa.
Para projetos em que o encaminhamento e a privacidade do fluxo de mensagens importam, consulte também as informações sobre privacidade e roteamento antes de decidir se a solução serve ao ambiente de teste. Evite enviar dados pessoais reais ou segredos de produção para uma caixa de teste. O objetivo é verificar o comportamento do produto com informação controlada, não transferir dados sensíveis para outro sistema.
Decisão de aprovação para cada cenário
Ao fechar a avaliação, responda a três perguntas para cada fluxo: o que uma pessoa externa consegue inferir, que evidência sustenta essa conclusão e o que a aplicação fez com a conta? Se a resposta depender apenas de uma tela, volte à matriz e verifique as outras camadas. Se existir uma diferença, mas não for reproduzível, registre-a como observação pendente em vez de apresentar uma falha confirmada.
Uma aprovação também deve refletir o escopo real. Se o cadastro foi avaliado, mas a recuperação ou a troca de endereço não foi, não estenda a conclusão aos fluxos que ficaram de fora. Se a aplicação usa regras distintas para tipos de conta ou estados de verificação, inclua os casos pertinentes no plano e explique quais foram cobertos. Esse cuidado evita que um teste simples seja interpretado como uma auditoria completa.
A equipe pode então decidir se a diferença observada é intencional, necessária e compatível com a política de segurança. Quando não houver justificativa clara, encaminhe o caso para revisão de produto e segurança. A correção pode envolver a resposta externa, o fluxo de confirmação ou a forma de registrar o estado; a escolha depende da arquitetura e das necessidades do serviço. O teste fornece evidências para essa decisão, mas não escolhe a política por conta própria.
Para uma verificação limitada a mensagens do próprio produto, um endereço de teste separado pode evitar expor a caixa principal e manter o ruído de validação fora das conversas de trabalho. Antes de usar tempget, confira na página as condições e capacidades efetivamente informadas; não presuma recebimento garantido, prazo de retenção ou adequação a dados sensíveis. Assim, o e-mail de teste apoia a conferência do fluxo sem ser confundido com uma prova completa de segurança.
READY / NEW INBOX
Precisa começar uma nova sessão de recebimento limpa?
Volte à ferramenta para gerar um endereço, copie-o e permaneça na mesma página enquanto espera.