Weaknesses of type CWE-1254

6 results

Comparação com granularidade incorreta

A fraqueza ocorre quando uma comparação de valores (strings, números, identificadores) é feita em um nível de granularidade inadequado, permitindo que valores distintos sejam tratados como equivalentes. Por exemplo, comparar apenas prefixos de strings quando deveria comparar valores completos, ou usar operadores soltos (== em vez de ===) que mascaram diferenças de tipo. Isso compromete autenticação, autorização ou lógica de validação.

Example

Um sistema compara IDs de usuário usando apenas os primeiros 5 caracteres: if (userID.substring(0,5) == adminID.substring(0,5)). Um atacante cria userID 'admin_1234' que coincide com 'admin_5678', obtendo acesso não autorizado.

How to mitigate

Sempre comparar valores completos e com operadores estritos (=== em JavaScript, equals() em Java, não ==). Definir explicitamente quais campos ou partes dos dados devem ser comparados, documentar a lógica e validar em testes unitários que IDs distintos não produzem matches falsos.