Ir para o conteúdo do rodapé
COMPARAçãO DE PRODUTOS

Descubra as melhores alternativas para a marca d'água do QuestPDF em .NET.

Um usuário carrega um PDF em seu portal, e você não tem ideia do que está dentro. O IronPDF sanitiza esse arquivo convertendo-o em uma imagem e de volta, removendo JavaScript embutido, objetos ativos, botões e metadados e, em seguida, reconstrói um documento limpo. A classe Cleaner expõe SanitizeWithBitmap e SanitizeWithSvg para limpar, e ScanPdf para detectar ameaças. Uma troca governa a escolha: bitmap é mais minucioso, mas perde a capacidade de busca por texto, enquanto SVG permanece pesquisável, mas o layout pode mudar. Você está trocando fidelidade por segurança, e decidindo quanto.

Desarmando PDFs de fontes não confiáveis

Qualquer aplicativo que aceite PDFs carregados (um portal, um rastreador de candidatos, um sistema de sinistros) pode limpar arquivos recebidos para que scripts embutidos e conteúdos ativos nunca cheguem a um visualizador:

using IronPdf;

var pdf = PdfDocument.FromFile("upload.pdf");
Cleaner.SanitizeWithSvg(pdf).SaveAs("upload-clean.pdf");
using IronPdf;

var pdf = PdfDocument.FromFile("upload.pdf");
Cleaner.SanitizeWithSvg(pdf).SaveAs("upload-clean.pdf");
Imports IronPdf

Dim pdf = PdfDocument.FromFile("upload.pdf")
Cleaner.SanitizeWithSvg(pdf).SaveAs("upload-clean.pdf")
$vbLabelText   $csharpLabel

Escaneando antes de processar

ScanPdf verifica um arquivo contra um conjunto padrão de regras YARA (ou um personalizado) e relata se algo perigoso foi encontrado, para que um pipeline possa colocar em quarentena ou rejeitar antes de armazenar ou abrir:

var pdf = PdfDocument.FromFile("upload.pdf");
CleanerScanResult result = Cleaner.ScanPdf(pdf);

if (result.IsDetected)
{
    // quarantine: result.Risks holds the detections
}
var pdf = PdfDocument.FromFile("upload.pdf");
CleanerScanResult result = Cleaner.ScanPdf(pdf);

if (result.IsDetected)
{
    // quarantine: result.Risks holds the detections
}
Imports System

Dim pdf = PdfDocument.FromFile("upload.pdf")
Dim result As CleanerScanResult = Cleaner.ScanPdf(pdf)

If result.IsDetected Then
    ' quarantine: result.Risks holds the detections
End If
$vbLabelText   $csharpLabel

Detecta explorações de JavaScript embutidos, ações de formulário suspeitas, conteúdo oculto, padrões de vulnerabilidade conhecidos e arquivos embutidos não autorizados. Note que ScanPdf só detecta; a limpeza é feita pelos métodos SanitizeWith.

Endurecendo documentos para deployment em nuvem

Remover conteúdo ativo antes de um arquivo entrar em um ambiente sem servidor ou compartilhado (Azure, AWS Lambda) reduz a superfície de ataque ali. Sanitize na entrada, não depois que o arquivo já está em execução em algum lugar sensível.

Removendo metadados antes de compartilhar

Como o documento é reconstruído a partir de uma imagem, nomes de autores ocultos, rastros de revisão e outros metadados não sobrevivem. Útil antes de publicar ou enviar um arquivo além da organização.

Produzindo uma base limpa para assinar ou arquivar

Sanear antes de uma assinatura digital ou arquivo em PDF/A dá um ponto de partida sem scripts. Raramente você deseja atestar ou preservar por décadas um documento que carrega conteúdo ativo.

Mantendo texto quando necessário

Quando etapas posteriores precisam das palavras (busca, indexação, acessibilidade, extração), use SVG: ele remove a camada ativa enquanto mantém o PDF pesquisável, aceitando um possível desvio de layout.

O que a sanitização não faz

Sanitização não é redação. Ele remove ameaças ocultas e ativas, não informações visíveis. Nomes, números de conta e qualquer coisa que um humano lê sobrevivem na íntegra. Para remover conteúdo sensível, esta é a ferramenta errada; use a redação.

E a saída bitmap é uma imagem. É indescritível e inacessível: um leitor de tela não obtém nada dele, o que conflita com objetivos de acessibilidade como PDF/UA. Use bitmap apenas quando a segurança máxima supera a pesquisabilidade, e use SVG quando o texto deve sobreviver.

Trate-o como um passo de segurança

A sanitização pertence à sua camada de segurança, não à de formatação. Execute em qualquer coisa que você não tenha gerado, escaneie primeiro, mantenha o original e escolha bitmap ou SVG dependendo de o texto precisar viver.

Perguntas frequentes

Como o IronPDF sanitiza um PDF carregado?

A classe Cleaner do IronPDF converte o PDF em uma imagem e o reconstrói como um documento limpo, removendo JavaScript incorporado, objetos ativos, botões de formulário e metadados. Use Cleaner.SanitizeWithBitmap para máxima minuciosidade ou Cleaner.SanitizeWithSvg para manter a capacidade de busca de texto.

Qual é a diferença entre SanitizeWithBitmap e SanitizeWithSvg?

SanitizeWithBitmap renderiza o PDF em uma imagem de pixels e reconstrói a partir dela — a opção mais minuciosa, mas produz um documento inacessível e não pesquisável. SanitizeWithSvg remove a camada de conteúdo ativo enquanto mantém o texto pesquisável, mas o layout pode deslocar-se ligeiramente.

O IronPDF pode verificar um PDF em busca de ameaças antes de eu processá-lo?

Sim. Cleaner.ScanPdf verifica o arquivo em comparação a um conjunto de regras YARA padrão (ou personalizado) e retorna um CleanerScanResult indicando se alguma ameaça foi detectada e quais são. A varredura apenas detecta — chame um método SanitizeWith para limpar o arquivo.

Quais ameaças o ScanPdf detecta?

ScanPdf detecta exploits de JavaScript incorporados, ações de formulário suspeitas, conteúdo oculto, padrões de vulnerabilidade conhecidos e arquivos incorporados não autorizados.

A sanitização remove informações sensíveis visíveis como nomes ou números de contas?

Não. A sanitização remove ameaças ocultas e ativas, não conteúdo visível. Nomes, números de contas e todo o texto legível por humanos permanecem. Para remover informações sensíveis visíveis, use a redação — sanitização é a ferramenta errada para isso.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de Suporte Iron

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim