Sanitização de Inputs

· Padrão Frontend
Juan Kalleo
Juan Kalleo
Senior Fullstack
This page hasn't been translated to English yet — showing the original Portuguese content.

Processo de limpar e filtrar dados inseridos pelo usuário antes de renderizá-los na tela para impedir a execução forçada de HTML ou scripts. Cobre dois momentos diferentes: validar o que entra (o dado tem o formato esperado?) e escapar o que sai (o dado, ao virar HTML, não vira código executável?).

No padrão frontend

Na entrada, todo formulário valida via schema Zod antes de qualquer fetch, espelhando exatamente a regra do backend Rails (nunca mais forte que ele) — ver Formulários. Isso barra formato errado, mas não é a defesa principal contra HTML/script — Zod valida shape, não teor malicioso de uma string de texto livre.

Na saída, a defesa real contra HTML/script "escapando" do dado é estrutural: o React escapa automaticamente todo valor interpolado em JSX — cobre 100% das telas do padrão, sem precisar de uma função de sanitização manual espalhada pelo código. Detalhe completo em XSS.

A única superfície onde o padrão monta HTML a partir de string concatenada (não JSX) é a exportação de PDF — ali existe uma função dedicada de escape (escapeHtml/valorHtml), testada com payload de ataque real. A exportação de Excel tem sua própria ameaça específica (fórmula que executa sozinha ao abrir a planilha), neutralizada por valorCelulaSegura. As duas em Segurança de exportação.