Weaknesses of type CWE-597

3 results

Uso de operador incorreto na comparação de strings

Quando o desenvolvedor usa o operador de igualdade errado (como == em vez de .equals() em Java, ou comparação por referência em vez de conteúdo) para comparar strings, a verificação falha porque compara endereços de memória em vez do conteúdo real. Isso quebra lógicas de autenticação, validação ou controle de acesso.

Example

Em Java, usar `if (userInput == "admin")` em vez de `if (userInput.equals("admin"))` pode deixar passar uma string com conteúdo idêntico mas alocada em outro lugar da memória, permitindo um atacante contornar verificações de permissão ou senha.

How to mitigate

Use sempre o método apropriado para comparação de conteúdo (.equals() em Java, === em JavaScript para tipo, ou funções de comparação de string em C). Em code review e linting, configure regras que flagrem comparações de string com operadores de identidade.