Weaknesses of type CWE-187

11 results

Comparação parcial de string

Ocorre quando o código compara apenas uma parte de uma string em vez da string completa, permitindo que valores não autorizados passem pela validação. Um atacante pode fornecer dados que começam corretamente mas contêm payload malicioso no final, burlando controles de segurança baseados em prefixos ou substrings.

Example

Um validador verifica se a URL começa com 'https://' usando substring, mas não valida o domínio completo. Um atacante envia 'https://confiavel.com.fake-bank.com' e a comparação parcial aceita por pensar que é legítimo. Ou um código que valida extensão de arquivo comparando apenas os primeiros 4 caracteres de '.pdf', aceitando '.pdfexe' como válido.

How to mitigate

Use funções de comparação de string completa e de forma sensível ao contexto (exact match, regex com âncoras, ou parsing estruturado). Para URLs, valide e faça parsing do host completo; para extensões, use funções especializadas que isolem a extensão real. Implemente testes de validação que cobram casos negativos com strings parcialmente válidas.