Security by Design no Frontend React
O frontend não é “só interface” — é a primeira camada exposta a usuários, bots e ataques. Em projetos com LGPD, dados sensíveis e integrações enterprise, segurança começa no JSX, não depois do deploy.
Estas práticas vêm de dashboards de conformidade, portais de telecom e produtos com autenticação e scraping.
1. XSS: não confie em HTML dinâmico
dangerouslySetInnerHTML// ❌ risco alto <div dangerouslySetInnerHTML={{ __html: userBio }} /> // ✅ markdown sanitizado ou texto puro <ReactMarkdown>{sanitizedContent}</ReactMarkdown>
Valide também URLs em
hrefsrcjavascript:2. Tokens: memória vs. storage
Evite
localStorage- Cookies HttpOnly para refresh tokens (backend define e
Secure)SameSite - Access token de curta duração em memória (state/context)
- Rotação e revogação no servidor
Se o produto exige
localStorage3. Validação em camadas
O frontend valida para UX; o backend valida para segurança. Nunca inverta essa ordem:
const emailSchema = z.string().email().max(254) const parsed = emailSchema.safeParse(input) if (!parsed.success) { setFieldError('email', 'E-mail inválido') return }
Em formulários LGPD, valide também consentimento, finalidade e campos opcionais — dados pessoais mal formatados podem virar incidente.
4. Dependências e superfície de ataque
npm audit- Dependências com scripts postinstall suspeitos
- Scripts de terceiros via tag manager sem CSP
- Variáveis — tudo isso fica exposto no client
VITE_*
Nunca coloque secrets em variáveis prefixadas com
VITE_5. Headers e políticas no edge
Mesmo em SPAs estáticas, configure no CDN ou nginx:
- (comece em report-only)
Content-Security-Policy - ou
X-Frame-Optionsframe-ancestors Referrer-Policy: strict-origin-when-cross-origin- restritiva
Permissions-Policy
O React não protege contra clickjacking — o edge sim.
Conclusão
Segurança no frontend React combina renderização segura, gestão consciente de tokens, validação em camadas e políticas no edge.
Trate cada input como potencialmente malicioso, cada token como temporário e cada dependência como um ponto de risco. Produtos mais seguros também passam em auditorias com menos surpresas.
