Problema
Na listagem de diretórios em node/server.js, req.url é inserido diretamente no HTML sem qualquer sanitização:
const html = `
<h1>Arquivos em ${req.url}</h1>
<ul>${list}</ul>
`;
Uma requisição para uma URL contendo tags HTML ou scripts (ex: /<img src=x onerror=alert(1)>) resulta em XSS refletido direto no navegador de quem acessa a listagem.
Correção
Escapar o valor de req.url antes de inserir no HTML:
const safeUrl = req.url.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
const html = `<h1>Arquivos em ${safeUrl}</h1>`;
Possíveis impactos
- Sem impactos funcionais — apenas o valor exibido na página é afetado
- Elimina vetor de XSS em ambiente local/desenvolvimento