Fallos del tipo CWE-86
11 resultadosFalta de neutralização de caracteres inválidos em identificadores web
Ocorre quando a aplicação não valida ou neutraliza adequadamente caracteres especiais ou inválidos em identificadores (IDs, nomes de usuário, URLs, etc.) antes de usá-los em HTML ou lógica de negócio. Um atacante pode injetar caracteres malformados ou códigos de escape que o navegador ou servidor interpretam diferentemente, causando XSS, bypass de validação ou comportamento inesperado.
Um site aceita um parâmetro 'user_id' sem filtrar caracteres especiais e o insere diretamente em um atributo HTML: <div id="user_123&'">. Se o filtro de XSS do navegador falhar ou interpretar o caractere '&' de forma inesperada, um atacante consegue injetar JavaScript. Ou um sistema de login aceita usernames com caracteres Unicode ambíguos que passam pela validação inicial mas são interpretados de forma diferente no banco de dados, permitindo privilege escalation.
Implemente whitelist rigorosa: aceite apenas caracteres alfanuméricos e alguns símbolos específicos (hífen, underscore) em identificadores. Use funções de escape apropriadas ao contexto (HTML encode, URL encode) antes de renderizar. Valide no servidor, nunca confie apenas em validação cliente. Testes com caracteres Unicode, especiais e de controle durante code review.