Detalhe — segurança

Como este site é protegido

Este portfólio roda um assistente de IA ao vivo que custa dinheiro de verdade a cada resposta, então ele foi construído como um pequeno serviço de produção. Aqui está o que o protege, em linguagem simples — e o que ainda não protege.

  1. Limites de gasto no assistente de IA

    Cada visitante pode fazer até 8 perguntas a cada 10 minutos, e o site inteiro tem um teto de 200 respostas por dia. Os dois contadores ficam no Upstash Redis, então valem para todas as instâncias do servidor. Se o limitador não responder, o assistente se recusa a responder em vez de deixar as requisições passarem. Por trás disso, há um limite mensal de gasto em um workspace dedicado da Anthropic.

  2. Entradas limitadas e checadas antes

    Requisições acima de 16 KB são rejeitadas, cada mensagem é cortada em 800 caracteres, só as últimas 8 trocas são mantidas e cada chamada ao modelo tem teto de 1.500 tokens. Requisições malformadas são recusadas antes de chegar a qualquer limite ou ao modelo.

  3. Só este site pode chamar o assistente

    O endpoint do assistente só aceita requisições de navegador vindas do simonlaborde.com. Qualquer outro site recebe um 403 e nenhuma permissão para ler a resposta.

  4. Testes de prompt injection

    Os testes tentam sobrescrever as instruções, extrair o system prompt, trocar a persona do assistente, contrabandear instruções dentro de um texto colado, pressioná-lo a revelar dados privados e forçá-lo a dar um preço ou um prazo; um segundo grupo confere se cada resposta sobre a minha experiência bate com o meu perfil, avaliada por outro modelo de IA, e um terceiro tenta convencer o verificador de respostas a aprovar afirmações falsas. A última execução completa no site publicado passou em todos os testes, em 1 de novembro de 2026. O assistente não tem ferramentas, não executa ações e só enxerga o conteúdo público deste site; as respostas aparecem como texto puro, nunca como HTML.

  5. Toda resposta é conferida antes de chegar a você

    Antes de uma resposta ser enviada, uma segunda chamada de IA confere cada afirmação contra o meu perfil. Se algo não tiver base, a resposta é reescrita uma vez; se ainda não passar — ou se a própria checagem falhar — você recebe um aviso curto com o meu e-mail, em vez de uma resposta não conferida.

  6. Suas perguntas e sua privacidade

    As perguntas são enviadas à API Claude, da Anthropic, para gerar a resposta e conferi-la. Este site não salva conversas, e seu endereço IP fica guardado por até 10 minutos para limitar o uso. Sem cookies, sem analytics.

  7. O formulário de contato

    Quando estiver ativado, o formulário de contato da página para empresas vai entregar as mensagens no meu e-mail pelo Resend, um serviço de envio de e-mails dos Estados Unidos; até lá, ao enviar, ele mostra o meu endereço de e-mail. Este site não guarda nem registra nada do que é enviado. Cada campo é validado no servidor, o formulário só aceita requisições deste site, um campo-armadilha escondido barra robôs simples, e limites de 3 mensagens por hora por conexão e 20 por dia seguram enxurradas — se o limitador não responder, o formulário se recusa a enviar.

  8. Cabeçalhos de segurança

    Uma Content Security Policy que só permite scripts, estilos, fontes e conexões do próprio site; HTTPS obrigatório com HSTS; sem MIME sniffing; uma política de referrer restrita; câmera, microfone, localização e pagamentos desativados; e nenhum outro site pode incorporar estas páginas em um frame.

    Ver o relatório ao vivo no securityheaders.com ↗

  9. Nenhuma requisição a terceiros até você dar play

    Visitar o site não aciona nenhum terceiro: as fontes e as capas dos vídeos são servidas pelo próprio site, e a Content Security Policy garante isso. Os dois vídeos de projetos carregam do YouTube, no modo de privacidade aprimorada (youtube-nocookie.com), só quando você aperta play.

  10. Toda mudança passa pelas mesmas checagens

    Cada mudança é um pull request que precisa passar por lint, build de produção, smoke test no navegador, auditoria de dependências, varredura de segredos em todo o histórico do git (gitleaks) e análise estática com CodeQL. A branch principal é protegida sem exceção para admins — nem o dono consegue fazer push direto. O Dependabot sugere atualizações, e as actions do CI estão fixadas em hashes de commit exatos. A auditoria que montou tudo isso também encontrou uma vulnerabilidade crítica do Next.js na versão em produção (GHSA-vcvr-r3jv-pc5j), corrigida no mesmo dia.

  11. Dados pessoais

    O CV público é gerado sem número de telefone — o gerador se recusa a criá-lo se houver um — e o histórico do git foi reescrito para remover o número de todos os commits antigos.

Limitações conhecidas

Relatar uma vulnerabilidade

Encontrou um problema? Mande um e-mail para simonrl865@gmail.com — o endereço também está em /.well-known/security.txt. Por favor, não abra uma issue pública para problemas de segurança.

Modelo de ameaças completo: SECURITY.md no GitHub (em inglês) ↗