2013-04-30 6 views
0

사용자 이름과 비밀번호 인증을 요구하는 웹 응용 프로그램이 있습니다. 사용자가 로그인하지 않은 경우 시스템은 사용자가 URL에 액세스하는 것을 중지해야합니다.사용자가 로그인하지 않은 경우 URL을 금지하십시오.

예를 들어 아래 URL은 사용자가 PDF 파일을 열거 나 다운로드 할 수 없도록 금지되어야합니다. 사용자가 로그인 한 경우에만 URL이 액세스 할 수 있어야합니다.

http(s)://database.mysite.com/files/whatever.pdf 

특히 .htaccess와 함께이 일을 어떤 방법이 있나요?

감사

+0

http 기본 인증? 그/files 디렉토리에 PW 보호를 설정하고 완료하십시오. –

답변

0

webroot 외부의 폴더를 제거하고 download.php라는 파일을 사용하여 먼저 로그인의 유효성을 검사하고 다운로드 할 파일의 내용을 읽습니다. 이 방법은 개발자가 이전에 설계하지 않았습니다.

require_once 'validate_login.php'; 

function download($filename) 
{ 
    $path = '/var/www/vhosts/forms/'; 

    if (file_exists($path . $filename)) 
    { 
     //echo $filename . ' exists'; 
     header('Content-disposition: attachment; filename= ' . $filename); 
     header('Content-type: application/pdf'); 
     readfile($path . $filename); 
    } 
    else 
    { 
     echo $filename . ' doesnt exist'; 
    } 
} 

$filename = $_GET['filename']; 

download($filename); 
0

할 수있는 가장 쉬운 방법은 파일 폴더에 htaccess로에 다음을 추가 할 수 있습니다 : 그런 다음

deny from all 

다운로드 핸들러를하는 PHP 스크립트를 - 예를 들어, www.mysite.com/downloads.php?file=whatever.pdf. PHP 스크립트는 사용자가 올바른 액세스 권한을 가지고 있는지 여부를 처리 할 수 ​​있습니다.

관련 문제