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 comusers), 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.