사용자 도구

사이트 도구


application:apache:noindexes

APACHE 설정에서 디렉토리 리스트(Index of ...) 숨기기

개요

  1. 웹사이트 방문자들이 파일이나 이미지를 다운로드할때 보여지는 주소를 통해 파일리스트를 볼 수 있다.
  2. 개발서버나 개발을 막시작하려고 할때에는 유용하지만, 운영시에는 보안상 매우 위험하다.
  3. 디렉토리 리스트가 보여지게 설정이 되어 있을 경우,
    http://www.adminschool.net/images/dotimage.jpg 이미지 주소가 있을때
    http://www.adminschool.net/images/ 를 브라우저 주소창에 입력하면 디렉토리에 있는 파일들이 모두 보여진다.

디렉토리 리스트 보기를 막기 위해서 다음 중 한가지를 선택해야 한다.

  1. <color blue>각 디렉토리마다 index 파일을 넣기</color>
  2. <color blue>Apache <Directory> 설정을 바꾸기</color>
    1. Global 설정
    2. Local(Virtual) 설정

Directory 설정

기본형식

  1. 디렉토리 리스트가 보이는 상태 (수정전)
    <Directory /> 
      Options Indexes FollowSymLinks 
      AllowOverride All 
    </ Directory>
  2. 디렉토리 리스트가 보이지 않는 상태 (수정후)
    <Directory /> 
      Options FollowSymLinks 
      AllowOverride All 
    </ Directory>

    혹은

    <Directory /> 
      Options -Indexes FollowSymLinks 
      AllowOverride All 
    </ Directory>

Virtual Hosting

  1. 아파치설정에서 Virtual Hosting 을 하고 있다면 Apache <Directory> 설정 바꾸기를 추천한다.

특정 디렉토리만 리스트 보이기

  1. 특정 디렉토리만 리스트가 보이게 설정할 수 있다.
    아래는 http://siteurl/www/dirlist 디렉토리가 보이게 설정된 예이다.
    <Directory /www/dirlist> 
      Options Indexes FollowSymLinks 
      AllowOverride All 
    </ Directory>

<Directory> 내부에 -Indexes 옵션 무력화 시키기

  1. 디렉토리 내부에 .htaccess 파일을 통해 디렉토리 리스트를 볼 수 있다.
  2. 파일에 다음 한줄만 추가해 주면 된다.
     Options Indexes 

설정예제

  1. 아래는 adminschool.net의 apache 설정파일이다.
    http://adminschool.net 의 모든 디렉토리 보기는 막혀있고, http://adminschool.net/images 만 디렉토리 보기가 허용된 상태이다.
    <VirtualHost *:80>
        ServerName www.adminschool.net
        ServerAlias adminschool.net
        DocumentRoot /html/adminschool/
        ServerAdmin webmaster@adminshcool.net
        <Directory /html/adminschool>
            Options -Indexes
        </Directory>
        <Directory /html/adminschool/images/>
            Options Indexes
        </Directory>
        <IfModule mod_suphp.c>
            suPHP_Engine on
        </IfModule>
        ErrorLog /var/log/apache2/www.adminschool.net-error.log
        CustomLog /var/log/apache2/www.adminschool.net-access.log combined env=!dontlog
    </VirtualHost>
application/apache/noindexes.txt · 마지막으로 수정됨: 2010/09/24 04:38 저자 starlits