Como foi construído

Documentação técnica

A engenharia por trás do VulnGuard: um SaaS multiusuário de gestão de vulnerabilidades, construído como prova de trabalho sênior e de segurança aplicada.

1. Visão geral

PHP 8 (vanilla, MVC leve) + MySQL via PDO com prepared statements em todas as queries. Cada time tem seus dados isolados (multi-tenant), o fluxo de correção é auditado e o relatório executivo sai em PDF (dompdf). Há uma demo read-only com dados fictícios — o mesmo sistema, sem login e sem escrita.

2. Engine de SLA (CVSS → severidade → prazo)

O coração do produto: a prioridade não é no chute. A partir do CVSS, o servidor define severidade e o prazo de correção.

if ($cvss >= 9.0)      { $sev = 'Crítico'; $dias = 1;  }  // 24h
elseif ($cvss >= 7.0)  { $sev = 'Alto';    $dias = 7;  }
elseif ($cvss >= 4.0)  { $sev = 'Médio';   $dias = 30; }
else                   { $sev = 'Baixo';   $dias = 90; }
$due_date = date('Y-m-d H:i:s', strtotime("+$dias days"));

3. Multi-tenant + auditoria

  • Isolamento por time: toda consulta filtra por team_token (JOIN com users), então um time nunca vê o dado do outro; papéis (admin/membro) controlam o que cada um faz.
  • Trilha de auditoria: cada mudança de status grava em audit_logs (quem, de-para, quando) — a "prova" que some numa planilha.

4. Segurança

  • SQL: PDO + prepared statements em tudo; credenciais só via .env (nada hardcoded).
  • Upload de evidência: whitelist por MIME real (finfo) + nome aleatório de 128 bits + a pasta de uploads sem execução de script.
  • Relatório PDF: todo dado é escapado antes de entrar no HTML do PDF e o dompdf roda com recursos remotos desligados.
  • Demo: modo somente-leitura — toda ação de escrita é bloqueada no servidor.