2011-04-07 5 views
1

클라이언트가 서버의 폴더에 많은 파일을 업로드하는 프로젝트가 있습니다. 이 파일은 시스템의 관리자 페이지 (PHP)에있는 링크를 사용하여 다운로드 할 수 있습니다.PHP에서 원격 액세스로부터 폴더를 보호하십시오.

브라우저 주소의이 파일에 대한 직접 액세스를 어떻게 비활성화 할 수 있습니까?

+0

이 질문은 자주 제기됩니다. 이 중 일부를 시도하고 사이트를 검색하십시오. http://stackoverflow.com/questions/3990337/how-to-protect-against-direct-access-to-images 또는 http://stackoverflow.com/questions/409496/prevent-direct-access-to-a-a- PHP-include-file – csi

답변

7

웹 루트의 외부에 업로드 디렉토리를 두십시오. 예를 들어, Apache (또는 사용중인 웹 서버)가/var/www의 웹 루트로 구성되었지만 업로드 된 파일이 예를 들어./var/uploads는 누구도 직접 다운로드 할 수 없음을 보증합니다 (최소한 웹 서버를 통해).

그런 다음 먼저 사용자가 인증되고 권한이 부여되었는지 확인한 다음 예를 들어 사용하는 독립 실행 형 프록시로 PHP 스크립트를 사용하십시오. passthru() 함수 (적절한 헤더를 설정 한 후)를 사용하여 사용자가 파일을 다운로드하도록 할 수 있습니다.

관련 문제