2014-11-27 2 views
0

여러 개의 PDF 파일이있는 폴더가 있습니다 각각의 이름은 만들어진 세션 번호입니다 내가 원하는 것은 사용자 (인증되지 않은 사용자)가 해당 세션에 해당하는 PDF 파일을 다운로드 할 수 있다는 것입니다. 하지만 다른 파일에 대한 액세스 권한이 없습니다 (파일이있는 폴더가 공개되어 있기 때문에). 어떻게 해결할 수 있습니까? 참고 : 모든 사용자가 인증되지 않았습니다.현재 세션의 공용 파일

답변

0

먼저 "귀하의 세션에 해당"이라고 말하면 "해당 세션"을 의미합니까?

먼저해야 할 일은 PDF가 분명히 앉아있는 디렉토리 인 디렉토리 목록을 방지하는 것입니다. 이것은 쉽게 한 줄 포함하는 htaccess로 파일을 수행 할 수 있습니다

모든

다음에서 거부를하고, 가정 당신에 대한 자신의 세션을 얘기했다, 당신은 쓸 수 있습니다 download.php 단지입니다 간단한 HTML 링크는

Download your PDF <a href="/public/path/to/download.php">here</a>. 

로, PDF를 다운로드 서버 측 프록시 서비스 스크립트는
<?php 
define('PDF_REPOSITORY', '/path/to/dir'); 

if (session_id() && file_exists(PDF_REPOSITORY . '/' . session_id() . ".pdf")) { 
    readfile(PDF_REPOSITORY . '/' . session_id() . ".pdf"); 
} 

?> 

같은

는 여기에서 우리는 서버가 클라이언트에도 불구하고 자원을 읽을 수있는 권리 의 모든 제한에서 거부하기 때문에, 위 설정할 수 없습니다를 가지고 있다는 사실을 악용.

분명히이 프록시 서비스는 훨씬 더 많이 확보 될 수있는 매우 컷 다운 예제입니다.

+0

그게 전부 야! 당신의 도움을 주셔서 감사합니다. 그리고 네, 그것은 "그들의 세션"입니다. – IRONLORD

관련 문제