Pular para o conteúdo

Segurança

O Escriba foi feito para rodar com documentos confidenciais. O princípio orientador: o controle permanece na camada humana — seus arquivos são processados no seu servidor e você decide o que chega a uma LLM.

  • Nada é armazenado. Os arquivos enviados são apagados logo após a conversão.
  • Sem nuvem de terceiros. Conversão, OCR, transcrição e anonimização rodam localmente no seu host.
  • O mapa de restauração permanece local. O mapa token→original da pseudonimização nunca sai do seu navegador.
  • Anonimização com falha segura — se a anonimização for solicitada e o serviço Anonimal estiver inacessível, a requisição retorna erro; o texto bruto nunca é emitido como fallback.
  • Anti-SSRF — a obtenção de URLs bloqueia IPs internos e redirecionamentos; o acesso a arquivos locais e file:// é restrito apenas ao DIOS.
  • Sanitização contra XSS — a pré-visualização é sanitizada com o DOMPurify; uma Content-Security-Policy estrita e cabeçalhos de segurança são definidos.
  • Limitação de taxa e bloqueio — limites de requisição por papel, compartilhados entre os workers via o Redis embutido, além de bloqueio de login em falhas repetidas.
  • Contêiner non-root — roda como um usuário sem privilégios com no-new-privileges.
  • Regex segura — as regras de anonimização fornecidas pelo usuário rodam no RE2 (tempo linear), que é imune a ReDoS.
  • Proteções contra DoS — os uploads têm o tamanho limitado via streaming; o seletor de páginas é limitado para evitar a expansão de “range-bomb”.

A base de código passou por uma auditoria estrita de múltiplas perspectivas e por um pen-test de red-team, com cada achado corrigido e verificado. Os destaques do reforço incluem uma chave de hashing aleatória por instalação, tratamento sanitizado de X-Forwarded-For (apenas proxies confiáveis), revogação de sessão, metadados de PDF removidos no tarjamento e cabeçalhos no-cache em ativos estáticos.