2010-08-13 5 views
0

내가 사용자는 누구나 및 과정의 내용과 형식 자체가 액세스 할 수 http://www.example.com/courses/course1/index.htmlPHP를 사용하여 정적 컨텐츠에 대한 액세스를 제한하거나 htaccess를 통해 인증합니까?

LMS에 착수하는 과정을 SCORM 파일을 받아 출력 PHP/아파치와 LMS 솔루션을 개발하고있어 정적 HTML I입니다 인증에 관해서 많은 옵션이있는 것 같지 않습니다.

나는 원래 폴더에 htaccess/htpasswd 파일을 만드는 것이 괜찮을 것이라고 생각했지만 PHP에서 사용자를 인증하는 방법을 볼 수 없기 때문에 볼 때마다 암호 프롬프트가 표시되지 않습니다. 과정 - 이전에 이미 내 앱에서 인증 한 것입니다.

정적 콘텐츠를 보호하는 가장 좋은 방법을 알고있는 사람이 (내 PHP 응용 프로그램에서) 권한이있는 사용자가 콘텐츠를 잘 볼 수 있지만 다른 사람은 아무것도 볼 수 없습니까?

답변

1

PHP가 로그인 자체를 처리하는 경우 가장 쉬운 옵션은 PHP 자체를 통해 콘텐츠를 제공하는 것입니다. 당신은 readfile 사용하는 URL 공간 또는 모든 요청을 거부하고 디렉토리 뒤에 매핑 된 URL에 매핑되지 않은 디렉토리에 정적 파일을 넣을 수

:

//request to /download_static.php?file=xxxx.rtf 
if (!has_access()) 
    die("unauthorized"); 

if ($f = filter_input(INPUT_GET, 'file', FILTER_SANITIZE_STRING, 
     FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH)) { 
    if (strpos($f, "/") || strpos($f, "..") || !file_exists("statics/$f")) 
     die("no such file"); 
} else { 
    die("invalid request"); 
} 
header("Content-type: application/rtf"); //or whatever 
//can also sent e-tag, last modified, size... 

readfile("statics/$f"); 

또 다른 옵션 만 사용할 수있다 PHP가 Apache 모듈로 설치되면 인증을 수행 한 다음 virtual으로 전화하십시오.

관련 문제