Abra as ferramentas de desenvolvedor do navegador com F12, mude para a aba Network (Rede) e limpe-a. Depois solte seu arquivo na ferramenta e inicie o processo. Observe as requisições que aparecem: se nenhuma delas carrega seu arquivo, e o tamanho de cada requisição é muito menor que o do arquivo, nada foi enviado.
Mais dois testes confirmam. Corte sua conexão depois que a ferramenta carregou uma vez e tente de novo: uma ferramenta local continua funcionando, uma baseada em servidor não. Depois veja com quais domínios a página conversa, porque um upload de arquivo é uma requisição a um endpoint específico e seu tamanho é proporcional ao seu documento. As seções abaixo dão os passos exatos, e as requisições que parecem alarmantes mas são apenas código ou rastreamento de página. Nenhuma dessas verificações precisa de qualquer software além do navegador que você já tem aberto.
Uma afirmação de privacidade em uma página de ferramenta vale exatamente o tanto quanto sua capacidade de verificá-la. A boa notícia é que a verificação é curta, não precisa de software especial e funciona em qualquer navegador. Você não está procurando uma promessa. Está procurando uma coisa específica: uma requisição que carregue o seu arquivo.
Compressor de imagem
Um bom objeto para o teste: carregue uma imagem, observe o painel, depois desconecte e comprima outra. Nada é enviado em nenhum dos casos.
Teste um: observe os bytes no painel de rede
Este é o método principal, e leva cerca de um minuto. Você está verificando se alguma requisição carrega um payload com aproximadamente o tamanho do seu arquivo.
- Abra as ferramentas de desenvolvedor. Pressione F12, ou use o menu do navegador e escolha Ferramentas de desenvolvedor. Mude para a aba Network (Rede).
- Limpe a lista. Clique no botão de limpar, geralmente um círculo com uma linha atravessada. Isso remove os recursos da página para que restem apenas as requisições da sua ação com o arquivo.
- Ative Preserve log se você quiser um panorama completo. Ele mantém as requisições visíveis durante um recarregamento de página, o que ajuda quando uma ferramenta navega ou atualiza no meio do processo.
- Solte seu arquivo e rode a ferramenta. Use um arquivo com um tamanho distinto, de preferência alguns megabytes, para que uma requisição correspondente seja óbvia.
- Observe a coluna de tamanho. Toda requisição é listada com seu tamanho transferido. Leia a maior. Se a maior requisição for um script, uma fonte ou uma pequena chamada de rastreamento, o arquivo nunca se moveu.
- Clique na maior requisição e leia seus detalhes. As abas Headers, Payload e Size dizem o que foi enviado. Um upload de verdade aparece como uma requisição cujo tamanho é aproximadamente o tamanho do seu arquivo.
O que você procura tem uma assinatura específica. Um upload geralmente é uma requisição POST para um endpoint como /upload ou /convert, e seu tamanho é próximo ao do arquivo. Se a requisição for um formulário, o content type provavelmente é multipart/form-data. Se o arquivo for enviado como bytes brutos ou base64, o content type é o próprio tipo do arquivo, ou o payload é um corpo JSON contendo os dados. Nos três casos o tamanho o denuncia, e é por isso que a coluna de tamanho é a primeira a ler.
Desbloquear PDF
Um caso sensível que vale a pena testar. O PDF e a senha são ambos lidos dentro da aba, então o painel não mostra nenhuma requisição carregando qualquer um dos dois.
Teste dois: desconecte e continue trabalhando
O teste offline responde a uma pergunta diferente, e é mais difícil de falsear. Se o processamento ainda é concluído sem nenhuma rede, então nenhum servidor pode estar envolvido no trabalho.
- Carregue a ferramenta e processe um arquivo primeiro. Isso armazena em cache o mecanismo de que precisa, o que é um download normal de código e não o seu arquivo.
- Desconecte-se da rede. Desligue o Wi-Fi, desconecte o cabo, ou use o menu de limitação de rede nas ferramentas de desenvolvedor e defina como Offline.
- Processe outro arquivo sem recarregar a página. Não recarregue, porque um recarregamento precisa buscar a própria página e vai falhar por motivos que não têm nada a ver com upload.
- Observe o resultado. Uma ferramenta local produz sua saída. Uma ferramenta baseada em servidor falha, geralmente com um erro de rede em sua linha de status.
A ordem desses passos é todo o truque. Se você desconectar primeiro e recarregar, está testando a busca da página, não o processamento. E se você nunca rodou a ferramenta antes de ficar offline, uma falha pode significar apenas que o mecanismo ainda não estava em cache. Rode uma tarefa online, corte a conexão, rode uma segunda tarefa.
Teste três: olhe os domínios e a política de segurança
Para onde uma página envia dados é tão revelador quanto quanto ela envia. No painel de rede você pode ordenar ou filtrar por domínio, e os domínios que uma ferramenta local toca são entediantes: seu próprio host, um host de fontes ou scripts e, possivelmente, um provedor de analytics. Um conversor que roda em um servidor precisa alcançar seu próprio endpoint de upload, e esse endpoint geralmente aparece no mesmo domínio do site.
Um sinal mais rigoroso é o cabeçalho Content-Security-Policy, que você pode ler na aba Headers da requisição do documento principal. Uma política com uma diretiva connect-src restrita nomeia as origens exatas que a página tem permissão de chamar, o que limita para onde um arquivo poderia ir mesmo em teoria. Sua ausência não prova nada, porque muitos sites simplesmente não definem uma. Combine-a com a evidência de rede em vez de tratá-la como um teste isolado.
O que parece suspeito mas não é
A maioria dos falsos alarmes vem de quatro tipos de requisição. Conhecê-los evita que você interprete um resultado limpo como vazamento.
- Analytics e gerenciadores de tags. Uma visualização de página é reportada a um serviço de medição, e é por isso que você vê um script de um domínio de analytics. Ele carrega o fato de que uma página foi carregada, não o conteúdo do seu documento. Este site carrega o Google Tag Manager, então você verá exatamente essa requisição.
- Downloads do mecanismo no primeiro carregamento. Uma ferramenta de navegador busca seu mecanismo de processamento na primeira vez que você a usa. Essa requisição é grande, o que a faz parecer um upload, mas é a mesma para todo visitante e não muda com o seu arquivo. O tamanho permanece constante enquanto sua entrada muda.
- Fontes e ícones. Tipografias e sprites de ícones são arquivos separados e aparecem como requisições próprias. Geralmente são algumas centenas de kilobytes no máximo.
- Cabeçalhos de isolamento de origem cruzada. Algumas ferramentas WebAssembly exigem cabeçalhos COOP e COEP para trabalho multithread. Vê-los é um sinal de que um mecanismo de verdade roda na página, não um sinal de que seu arquivo está se movendo. As ferramentas deste site usam um mecanismo de thread única e não precisam deles.
A linha divisória é simples. Código e recursos de página têm tamanhos que permanecem os mesmos não importa o que você envie. Seu arquivo tem um tamanho que aparece na rede apenas se ele for realmente enviado. Compare o total de bytes transferidos com o tamanho da sua entrada, e a resposta não é ambígua.
Onde este método tem limites
Os testes acima são fortes, e não são absolutos. Ser claro sobre as lacunas é o que torna o resto da página confiável.
- O fatiamento esconde linhas individuais, não o total. Uma ferramenta poderia dividir um arquivo em muitas requisições pequenas. Somar o total de bytes transferidos derrota isso, e é por isso que a comparação de tamanho importa mais que qualquer linha isolada.
- Um service worker pode mascarar uma falha offline. Se um site armazena em cache suas próprias páginas, um recarregamento offline pode ainda funcionar. O teste offline só é confiável quando você evita recarregar e confia em uma tarefa concluída.
- O tráfego pode ser criptografado e opaco. Sobre HTTPS você não consegue ler o conteúdo de uma requisição, apenas seu tamanho e destino. O tamanho é suficiente para detectar um upload de arquivo, mas não vai dizer o que uma pequena requisição contém.
- Local não significa automaticamente seguro. Processar na aba descarta um upload. Não diz nada sobre outros riscos, como uma página que lê mais do seu disco em uma etapa posterior. Verifique a afirmação específica feita em vez de presumir bom comportamento em tudo.
- Algumas ferramentas realmente precisam de um servidor. Modelos grandes para remoção de fundo ou melhoramento generativo não cabem em um orçamento de download do navegador, e essas ferramentas dizem isso. O padrão honesto é uma página que informa quais recursos enviam e quais não enviam, como a seção Cloud AI faz aqui.
Se você quer a explicação por trás de por que uma aba consegue fazer esse trabalho, o guia complementar sobre como funcionam as ferramentas de arquivos no navegador percorre as camadas de mecanismo, Canvas e File API. Se você só quer uma ferramenta para testar, qualquer página no diretório de ferramentas funciona, e Combinar PDF é um bom segundo objeto porque os tamanhos de entrada e saída são fáceis de comparar.