Como Exibir PDFs de Forma Segura com Proxy e Iframe

Se você precisa proteger a URL do seu PDF enquanto exibe ele em uma página, uma solução eficiente e simples pode ser usar PHP, proxy, e um iframe com o visualizador de PDF PDF.js. Isso permite que você carregue o arquivo sem expor sua URL real para o cliente.

Aqui está o que vamos fazer:

  1. Criar um proxy PHP que redireciona para o visualizador PDF.js sem mostrar a URL do arquivo.
  2. Usar um iframe para exibir o conteúdo de forma integrada na página.

1. Criando o Proxy PHP

O primeiro passo é criar um proxy que receba a URL do arquivo PDF e a passe para o viewer.html do PDF.js sem expô-la diretamente.

<?php
// Caminho do arquivo PDF
$pdfPath = 'https://localhost/devdata/dashboard.devdata.com.br/1.pdf';

// URL do viewer.html com o parâmetro "file"
$url = url(tools) . '/readerPDF/web/viewer.html?file=' . $pdfPath;

// Verifica se a URL é válida
if (filter_var($url, FILTER_VALIDATE_URL)) {
    // Gera a página com o iframe
    ?>
    <!DOCTYPE html>
    <html lang="pt-br">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Exibindo PDF</title>
            <style>
                body, html {
                    margin: 0;
                    padding: 0;
                    width: 100%;
                    height: 100%;
                }
                iframe {
                    width: 100%;
                    height: 100%;
                    border: none;
                }
            </style>
        </head>
        <body>
            <iframe src="<?= htmlspecialchars($url, ENT_QUOTES, 'UTF-8'); ?>"></iframe>
        </body>
    </html>
    <?php
} else {
    echo "URL inválida ou não fornecida!";
}
?>

2. Exibindo o PDF com Iframe

A principal vantagem dessa abordagem é que a URL do arquivo PDF fica oculta da interface do usuário, sendo passado como parâmetro diretamente para o viewer.html do PDF.js.

No código acima:

  • A URL do arquivo PDF é passada para o viewer.html através do parâmetro file.
  • A página é carregada com um iframe, que exibe o conteúdo PDF sem expor a URL real.
  • HTML e CSS garantem que o iframe ocupe toda a tela, proporcionando uma experiência imersiva.

Vantagens dessa abordagem:

  • Segurança: A URL real do arquivo PDF não fica visível para o cliente.
  • Facilidade de uso: A integração com o PDF.js via iframe torna a exibição do PDF muito simples.
  • Customização: Você pode facilmente adaptar o código para adicionar outros controles ou funcionalidades, como tema escuro ou opções de zoom.

Conclusão

Essa solução é perfeita para quando você precisa exibir PDFs de forma segura e prática, sem revelar o caminho real do arquivo. A combinação de proxy PHP com o iframe do PDF.js garante uma experiência de visualização de PDF sem complicação, enquanto mantém sua URL protegida.


Considerações finais:

Esse é um bom exemplo de como você pode fazer com que o visualizador de PDF seja seguro, simples e bem implementado, sem expor a URL do conteúdo. A possibilidade de utilizar o iframe deixa o processo ainda mais eficiente, enquanto o PHP atua como intermediário, garantindo a segurança.

Rolar para cima