Segurança no frontend
· Padrão Frontend
This page hasn't been translated to English yet — showing the original Portuguese content.
Pasta viva que concentra tudo que é de segurança no HTD-Front: autenticação, autorização (RBAC), exportação segura (PDF/Excel) e o mapa geral de medidas. Cada arquivo aqui é uma página própria — a árvore da sidebar acompanha a pasta, não há nada hardcoded.
Índice
| Tópico | Abrange |
|---|---|
| Autenticação | Login, logout, sessão e fluxos de recuperação/definição de senha |
| Administração e RBAC | Usuários, tipos de usuário, papéis e permissões granulares (conversa com o RBAC do Rails) |
| Segurança em PDF | Template, sandbox do Puppeteer e download direto no clique |
| Segurança de exportação | PDF/Excel: auth na rota, validação Zod, escape/fórmula e preview |
| Medidas de segurança | Mapa geral das medidas e dos limites conhecidos |
| XSS | Escape automático do React, o único dangerouslySetInnerHTML do padrão, CSP como reforço |
| CSP | Content-Security-Policy por nonce via proxy.ts, diretiva a diretiva |
| CSRF | Por que token em localStorage (em vez de cookie) já neutraliza CSRF clássico |
| Cookies HttpOnly & Secure | Por que não se aplica hoje (zero cookie no padrão) e quando aplicaria |
| SRI | Por que não se aplica (zero script/CDN externo) |
| Clickjacking | frame-ancestors 'none' + X-Frame-Options: DENY |
| Cabeçalhos de Segurança HTTP | O conjunto completo de headers enviado em toda rota, verificado ao vivo |
| Sanitização de Inputs | Validação de entrada (Zod) + escape de saída (React, PDF/Excel) |
| Poluição de Protótipo | Por que não se aplica (zero merge profundo de JSON no padrão) |
| Man-in-the-Middle | HSTS, upgrade-insecure-requests, e por que certificate pinning não se aplica à web |
| Política de senha | Devise.password_length validado de verdade em User — tamanho aplicado nos dois lados |
| Redefinição de senha | Fluxo pronto no front, endpoint não existe na API; correção do redirect pós-reset |
| Força bruta e bloqueio | rack-attack real (3 camadas), mensagem sem enumeração, sem log de falha |
| IDOR e autorização | Fetch-then-authorize do CanCanCan, escopo de tenant, sem log nem teste de negação |
| Autorização automatizada | Por que uma matriz de teste formal fecharia o gap de cobertura da API |
| JWT | Algoritmo, claims mínimas, revogação real por jti — checklist do OWASP JWT |
| Logs de auditoria | /logs no front + GET /api/v1/admin/versions na API — payload, filtro, decisões reais de implementação |
| Proteção da wiki | HTTP Basic Auth via middleware.ts — por que o AuthGuard do HTD-Front não serviria aqui |
Leitura de apoio
- OWASP — Top 10 — referência de onde cada tópico desta pasta se encaixa.
- OWASP — Authentication Cheat Sheet — autenticação e sessão.
- OWASP — Authorization Cheat Sheet — autorização e IDOR.
- OWASP — Authorization Testing Automation Cheat Sheet — matriz de teste de autorização.
- OWASP — JSON Web Token Cheat Sheet — checklist de token JWT.
- OWASP — Forgot Password Cheat Sheet — fluxo de redefinição de senha.
- OWASP — CSV Injection — exportação segura de PDF/Excel.

