Files
SeConectai_Web/Schema/11-lgpd-e-seguranca.md

2.4 KiB
Raw Permalink Blame History

11 — LGPD e segurança

Contexto do projeto (leia sempre)

Sistema web "Briefing de Site" da SeConectai: o cliente se cadastra e depois preenche o briefing de criação do site, com um botão Ajuda em cada pergunta que abre um popup com o texto do guia auxiliar. O dono (Tiago) acompanha tudo por um painel admin. Stack fixa: Next.js 14+ (App Router) + TypeScript, PostgreSQL 16, Prisma, Tailwind + shadcn/ui, React Hook Form + Zod, Auth.js v5 (Credentials, estratégia JWT), Docker Compose. Idioma da interface: pt-BR. Regras gerais: leia 00-arquitetura-briefing-site.md e 99-progresso.md antes de começar; não avance se a etapa anterior estiver incompleta; ao terminar, devolva o 99-progresso.md atualizado. Não invente dependências fora da stack. Nada de senhas de clientes em lugar nenhum.

Pré-requisito

Etapas 01–10 concluídas.

Tarefa

  1. Páginas legais: /privacidade (Política de Privacidade) e /termos, com texto-base editável (marcar claramente como "revisar com assessoria jurídica"); links no rodapé e no cadastro.
  2. Direitos do titular: em "Minha conta", cliente pode ver e editar seus dados, baixar seus dados (JSON) e solicitar exclusão (cria SolicitacaoExclusao; admin processa — anonimiza o cadastro mantendo o briefing sem identificação pessoal, conforme decisão do Tiago).
  3. Cabeçalhos de segurança no next.config: CSP, X-Frame-Options, Referrer-Policy, Permissions-Policy, HSTS em produção.
  4. Proteções: rate limit nos endpoints de cadastro, login, recuperação e upload; proteção CSRF nas server actions (padrão Next) e checagem de origem nas route handlers; sanitização de saída (React já escapa; nunca usar dangerouslySetInnerHTML com dados do cliente).
  5. Logs: nunca registrar senha, token, CPF ou conteúdo de respostas; logar apenas ids e eventos.
  6. Backups: script scripts/backup.sh com pg_dump + cópia do volume de uploads, com rotação.
  7. Revisão final: tentar manualmente acessar recurso de outro cliente em cada rota (briefing, resposta, anexo, PDF) e confirmar bloqueio.

Critérios de aceite

  • Cabeçalhos de segurança presentes (verificar com curl -I).
  • Teste manual de isolamento entre clientes passa em todas as rotas.
  • grep no código não encontra CPF/senha em logs.
  • Backup e restauração testados em ambiente limpo.

Atualize 99-progresso.md (11).