서버에서만 파일에 액세스할 수 있도록 허용

서버에서만 파일에 액세스할 수 있도록 허용

저는 어느 시점에서 PDF 파일 보기를 활용하는 시스템을 구축 중입니다.

이러한 파일은 누구도 시스템 외부에서 볼 수 없도록 잠가야 합니다. 이는 파일에 직접 액세스할 수 없으며 사용자에게 표시하기 위해 서버에서만 액세스할 수 있음을 의미합니다.

documents다음과 같은 폴더가 있습니다 .

.htaccess
test.pdf
test.txt

내 .htaccess에는 다음이 있습니다.

Order Allow,Deny
Deny from all

이는 다음으로 이동하여 파일에 직접 액세스하는 것을 효과적으로 차단합니다.example.com/documents/test.pdf

그래도 내 시스템 내에서 파일을 볼 수 있어야 하지만 직접 URL로도 로드할 수 없습니다. 그래서 내 documents폴더 바로 외부에 load_pdf.php. 이 파일은 다음과 같습니다:

header("Content-Type: application/pdf");
$pdf = file_get_contents('documents/test.pdf');
echo $pdf;

그리고 그것은 작동합니다! 다음과 같이 파일을 삽입할 수 있습니다.

<embed src="/load_pdf.php"></embed>

그러나 문제가 있습니다. 누구나 load_pdf.php브라우저에서 직접 로드할 수 있으므로 액세스할 수 없는 PDF 문서를 표시할 수 있습니다.

load_pdf.php내 요소의 서버에 의해 로드되지 않는 한 로드되는 것을 차단할 수 있는 방법이 있습니까 <embed>?

답변1

파일에 액세스하려는 IP 주소를 지정하거나 로그인한 경우 특정 이메일 ID를 사용하여 보기를 허용할 수 있습니다.

이 모든 것은 load_pdf.php 시작 시 지정할 수 있습니다.

답변2

아니요.

https://stackoverflow.com/questions/4930914/prevent-pdf-file-from-downloading-and-printing

궁극적으로 다음을 수행해야 합니다.

  • 각 페이지에 대한 이미지 생성

  • 자신의 인터페이스(html, 플래시 등)를 통해 웹에서 사용자에게 이를 제공합니다.

답변3

다음을 수행하여 이 작업을 수행할 수 있습니다.

<Files *test.pdf>
    Order allow,deny
    Deny from all
</Files>

<Files *test.txt>
    Order allow,deny
    Deny from all
</Files>

관련 정보