Weaknesses of type CWE-838
9 resultsCodificação inadequada para contexto de saída
Ocorre quando dados são codificados (ou escapados) de forma incorreta para o contexto onde serão exibidos ou processados. Por exemplo, usar escape HTML em um atributo JavaScript, ou não escapar corretamente strings em SQL. O risco é que o dado malformado seja interpretado de forma não esperada, abrindo brecha para injeção ou bypass de proteções.
Um desenvolvedor tira uma string de um banco de dados e a coloca em um atributo onclick HTML usando apenas htmlspecialchars(), mas não escapa corretamente para contexto JavaScript. Um atacante injeta: '; alert('xss'); // — o escape HTML não é suficiente, e o código JavaScript é executado.
Use bibliotecas ou funções de escape específicas para cada contexto (HTML, JavaScript, URL, CSS, SQL). Validar entrada e codificar saída de forma contextual: em HTML use htmlspecialchars() com flag ENT_QUOTES; em JavaScript use JSON.stringify() ou bibliotecas especializadas; em SQL use prepared statements. Prefira permitir listas e validação rigorosa sobre confiar apenas em codificação.