Weaknesses of type CWE-838

9 results

Codificaçã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.

Example

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.

How to mitigate

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.