디렉토리를 비밀번호로 보호하지만 해당 디렉토리의 파일은 보호하지 않습니까?


8

.htaccess 및 .htpasswd 파일을 사용하여 사용자 이름 / 비밀번호 조합으로 디렉토리를 보호 할 수 있는지 궁금하지만 파일을 보호하지는 못합니다. 즉, 디렉토리에있는 이미지를 친구에게 링크 할 수 있지만 사용자 이름 / 암호가 없으면 디렉토리 자체를 탐색 할 수 없습니다. 미리 감사드립니다.

답변:


9

당신의 이것을 시도하십시오 .htaccess:

Require valid-user

<Files ?*>
    Order allow,deny
    Allow from all
    Satisfy any
</Files>

다음은 Require valid-user공지의 로그인이 필요합니다. 그럼 당신은 이름에 적어도 하나 개의 문자로 파일이 제한을 수정 - 이것은 글로브 패턴 무엇 ?*<Files>효과적으로 동봉 된 규칙이 파일에 적용 의미가 아니라 디렉토리 - 부분이 일치합니다.

수정 된 파일 규칙에서 키는 Satisfy any입니다. 그것은 만족에 인증 할 수 있습니다 자격 증명 또는 IP 주소를. 그런 다음 모든 IP 주소를 전달할 수 있으므로 요청이 항상 승인됩니다.

이제이 디렉토리 나 그 서브 디렉토리를 찾아 보려면 로그인이 필요하지만 파일을 직접 검색하는 것은 필요하지 않습니다.

당신이 원하는 것입니다.


0

예, 이름이나 패턴으로 파일과 디렉토리를 보호 할 수 있습니다. 이미 이것을 사용하여 .ht * 파일에 대한 액세스를 제한해야합니다. 아파치 구성을 확인하십시오. 필요한 파일 패턴은 '/ $'일 것입니다.


0

LocationMatch인증 항목을 디렉토리 색인으로 제한하는 데 사용하십시오 .


<LocationMatch "/ pictures"> AuthUserFile /home/asdasd/public_html/user5678/pictures/.htpasswd AuthGroupFile / dev / null AuthName "제한된 디렉토리"AuthType 기본 </ LocationMatch> <제한된 게시물> 유효한 사용자가 필요합니다 </ Limit> 이것은 / pictures에있는 현재 .htaccess 파일입니다. 내가 잘못하고있는 것이 있습니까? 이것은 500 내부 서버 오류를 반환하는 것 같습니다.

a)에 대해 읽으 LocationMatch려면 정규식이 필요합니다. b) 물론 require valid-user내부에 LocationMatch블록 을 배치해야합니다 ( Limit어쨌든 왜 진술이 있습니까?)
Marian

0

폴더의 색인을 Apache에 표시하지 않기로합니다. 이것을 .htaccess에 넣으십시오.

Options -Indexes

이 방법으로 사용자가 방문 http://www.url.com/folder/하면 디렉토리 목록 거부 오류가 발생합니다. 그러나 그들이 방문 http://www.url.com/folder/file.jpg하면 파일을 볼 수 있습니다.


1
이것은 요청되지 않았으며,이 목록을 비활성화하고 암호로 보호하지 않습니다.
Krzysztof Bociurko

-1

인증 된 사용자 만 디렉토리 목록을 볼 수 있지만 누구나 파일을 다운로드 할 수있게하려면 (사람 링크를 보낼 수 있음) 사용자에게 요청하는 일부 유형 (PHP, ASP 등)의 스크립트가 필요합니다. 암호와 올바르게 입력하면 디렉토리의 내용이 표시됩니다. 이 스크립트를 디렉토리에 넣고 index.php로 이름을 지정하면 디렉토리 색인을 생성하는 대신 아파치가 제공됩니다.


-1

예. 폴더의 내용을 나열하는 index.html 파일을 추가하고 .htaccess를 사용하여 해당 파일에 대한 액세스를 제한하십시오. 인덱스를 동적으로 만들려면 인덱스를 생성하기 위해 일종의 스크립트 (또는 서버 측 포함)를 사용해야합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.