Estou construindo um sistema que em algum momento utiliza a visualização de arquivos PDF.
Esses arquivos precisam ser bloqueados para que ninguém possa visualizá-los fora do sistema. Isso significa que os arquivos não podem ser acessados diretamente, e apenas acessados pelo servidor para serem exibidos ao usuário.
Eu tenho uma pasta documents
que se parece com isso:
.htaccess
test.pdf
test.txt
No meu .htaccess, tenho o seguinte:
Order Allow,Deny
Deny from all
Isso efetivamente me impede de acessar o arquivo diretamente, indo paraexample.com/documents/test.pdf
Ainda preciso que o arquivo possa ser visualizado dentro do meu sistema, mas também não é possível carregá-lo com o URL direto. Então criei um arquivo fora da minha documents
pasta chamado load_pdf.php
. Este arquivo se parece com isto:
header("Content-Type: application/pdf");
$pdf = file_get_contents('documents/test.pdf');
echo $pdf;
E funciona! Posso incorporar o arquivo assim:
<embed src="/load_pdf.php"></embed>
No entanto, há um problema. Qualquer pessoa pode carregar load_pdf.php
diretamente no navegador, exibindo assim o documento PDF que não deveria estar acessível.
Existe alguma maneira de bloquear load_pdf.php
o carregamento, a menos que esteja sendo carregado pelo servidor no meu <embed>
elemento?
Responder1
Você pode especificar o endereço IP do qual deseja acessar os arquivos ou, se tiver login, use um ID de e-mail específico para permitir a visualização.
Tudo isso você pode especificar no início do seu load_pdf.php
Responder2
Não.
https://stackoverflow.com/questions/4930914/prevent-pdf-file-from-downloading-and-printing
Em última análise, você precisará:
Crie imagens para cada página
Apresente-os ao usuário na web por meio de sua própria interface (html, flash etc.)
Responder3
Você pode fazer isso seguindo: -
<Files *test.pdf>
Order allow,deny
Deny from all
</Files>
<Files *test.txt>
Order allow,deny
Deny from all
</Files>