Fallos del tipo CWE-692

10 resultados

Lista negra incompleta contra XSS

É quando o código tenta bloquear ataques de XSS usando uma lista de padrões ou palavras-chave perigosas (blacklist), mas essa lista não cobre todos os vetores possíveis. Atacantes contornam facilmente usando variações não bloqueadas, como codificação diferente, caracteres Unicode ou tags HTML alternativas.

Ejemplo

Um filtro que bloqueia apenas a tag <script> deixa passar <iframe src="javascript:alert(1)"> ou <svg onload=alert(1)>. Ou bloqueia 'alert' mas não 'eval' ou outras funções perigosas. Um usuário malicioso consegue injetar payload funcional porque a defesa cobre só os casos óbvios.

Cómo mitigar

Abandone blacklist para XSS: use whitelist (permitir apenas tags e atributos seguros), escape de saída contextual (HTML-encode, atributo-encode, JavaScript-encode conforme o contexto) e Content Security Policy (CSP). Se precisar aceitar HTML rico, use bibliotecas que parsem e sanitizem como DOMPurify ou bleach, não regex caseiro.