2010-02-24 3 views
1

로그인 한 사용자가 업로드하고 액세스 할 수있는 파일 디렉토리가 있습니다. 파일 중 일부는 공개 파일이고 다른 파일은 내부 용입니다. 파일 이름과 액세스 설정은 데이터베이스에 저장됩니다.디렉토리의 파일에 대한 인증/거부 액세스

아무에게도 리소스를 제공하거나 세션 데이터 (및 .htaccess?)를 사용하여 승인 된 사용자에게만 개인 파일에 액세스 할 수있는 방법을 보여줄 수 있습니까?

공개 문서를 별도의 보호되지 않은 별도의 디렉토리에 보관하는 것이 더 쉬울 수도 있지만, 모든 것을 함께 보관하는 것이 좋습니다.

덕분에 파일이 몹시를 구분하지 않습니다으로 내가 최고 수준의 보안 또는 암호화에 대한하지 걱정,하지만 난 검색 엔진에 색인되는 것을 유지하려는!

답변

1

은 내가 그것에 대해 htaccess로 (또는 HTTP 인증의 종류)를 사용하지 않을 생각 :의 .htaccess/.htpasswd 당신이 허용/전체 디렉토리에 대한 액세스를 거부 할 경우 중대하다, 그리고 특정 파일. 대신


, 내가 것 :

  • 이 파일에 대한 액세스 거부 - Deny from All
    • 그 방법을 포함하는, 즉이 .htaccess 파일을 사용하여, 아무도 파일
    • 에 액세스 할 수 없습니다
    • 모두가 직접 URL이 아닌 다른 방법으로 파일을 가져와야 함을 의미합니다.
  • 것 PHP 스크립트 개발 :
    • 파일 식별자 수신 (사용자 를 인증 (파일 이름, 예를 들어를 파일에 대응할 수 또는 일부 식별자)
    • 을 사용자가 유효한 경우
    • 데이터베이스에 저장된 데이터와 비교하여 (일부 사용자는 동일한 파일 세트에 대한 액세스 권한이없는 경우)), PHP 스크립트에서 파일의 내용을 읽고 사용자에게 보냅니다.

장점은 PHP 스크립트는 DB에 액세스 할 수 있는지 - 그것은 사용자가-에서 로그 아웃 로그인 할 수 있습니다 즉,이 세션을 사용할 수 있습니다 ...

+0

감사합니다. 나는 이와 같은 접근법을 고려하고 있었지만, "Deny from All"또한 php가 파일들과 상호 작용할 수 없게한다는 인상하에있었습니다. – neil

+0

No :'Deny from all'은 아파치에 영향을 미친다; 그러나 PHP *에는 아무 것도 없습니다 (PHP 스크립트가 아파치에서 제공하는 것처럼 PHP 스크립트가'모두 거부 '를 포함하는 디렉토리에없는 한). –

0

I :은 "PHP에서 파일을 보내"에 대해


, 여기에 몇 가지 빛을 가져올 수있는 몇 가지 질문이 있습니다 PHP에서 사용자 정의 색인 스크립트를 작성합니다.이 스크립트는 파일을 동적으로 표시합니다. 파일을 보호하고, 파일 내용을 동적으로 가져옵니다. - Pascal MARTIN의 링크는 PHP를 사용하여 파일 스트리밍을 제어하는 ​​방법을 보여줍니다. 숨겨진 파일로부터의 액세스를 차단하는 데 사용할 수 있습니다. 파일을받지 못하는 사용자에게 파일을 보냅니다.

관련 문제