1). 디렉토리 제한 방식

 

1. /var/www/html/image1 폴더 생성

2. 링크 될 이미지를 만들어 놓는다

3. .htaccess 파일을 생성후 아래 내용을 작성하여 저장

 

SetEnvIfNoCase Referer "http://localhost" local_referal
SetEnvIfNoCase Referer "http://127.0.0.1" local_referal
#SetEnvIfNoCase Referer "http://도메인명" local_referal
SetEnvIfNoCase Referer "http://192.168.18.128" local_referal ##사설 IP 주소
SetEnvIfNoCase Referer "http://210.93.15.30/" local_referal ##공인 IP 주소

Order Deny,Allow
Deny from all
Allow from env=local_referal

- SetEnvIf를 사용하지 않고 SetEnvIfNoCase 를 사용한 이유

 

현재의 도메인 네임 체계에서는 대소문자를 가리지 않는다. 그러므로 HTTP_REFERER 의 값이 http://www.oops.org 이든 http://WWW.OOPS.ORG 가 동일하게 적용이 된다. 즉 http://www.oops.org 에서만 image가 하이퍼 링크를 하는 것을 가능하게 하려 하는데 어느 누군가 http://WWW.OOPS.ORG 와 같이 대문자로 접근을 했을 경우 이를 처리를 하지 못하는 경우가 발생할수 있으므로 대소문자 구분을 하지 않는 SetEnvIfNoCase 를 사용하는 것.

 

 

2)이미지 파일 확장자로 제한하는 방법 (Referer 사용)

 

1. /var/www/html/image2 폴더 생성

2. 링크 될 이미지를 만들어 놓는다

3. .htaccess 파일을 생성후 아래 내용을 작성하여 저장

 

SetEnvIfNoCase Referer "http://localhost" local_referal
SetEnvIfNoCase Referer "http://127.0.0.1" local_referal
#SetEnvIfNoCase Referer "http://도메인명" local_referal
SetEnvIfNoCase Referer "http://192.168.18.128" local_referal ##사설 IP 주소
SetEnvIfNoCase Referer "http://210.93.15.30/" local_referal ##공인 IP 주소

<Files ~ "\.(gif|jpg|jpeg|png|bmp)$">
Order Deny,Allow
Deny from all
Allow from env=local_referal
</Files>

 

3) 이미지 파일 확장자로 제한하는 방법 2(Rewriting Rule 사용)

 

 

1. /html/var/www/images3 폴더 생성

2. 링크 될 이미지를 만들어 놓는다

3. .htaccess 파일을 생성후 아래 내용을 작성하여 저장

RewriteEngine On ## RewriteEngine 모드 ON
RewriteCond %{HTTP_REFERER{ !^$
RewriteCond %{HTTP_REFERER} !^http://192.168.18.128.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://210.93.15.30.*$ [NC]
RewriteRule .(jpg|jpeg|gif|bmp)$ ../angryman.png [NC,L] ## 차단되는 그림 (안쓰면 엑박 / 쓰면 대체 이미지)

 

/var/log/error_log의 로그에 다음과 같이 출력 될 경우

[Sun Nov 17 00:12:35 2013] [alert] [client 210.93.15.30] /var/www/html/image3/.htaccess: RewriteEngine not allowed here, referer: http://210.93.15.30/test.html

 

/etc/httpd/conf/httpd.conf 파일 326 line

 

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All

#

 

 

4) 이미지 파일 확장자로 제한시 특정 디렉토리는 제외하는 방법
위의 '2)' 설정에 다음 내용을 추가하면 /upload/ 디렉토리에 있는 .jpg 파일이라도 외부 링크를 허용하게 된다

반응형

'OS' 카테고리의 다른 글

nslookup  (0) 2015.08.08
Apache LogFormat 지시어  (0) 2015.07.13
Crontab을 이용하여 일정 시간마다 로그 백업후 FTP 업로드  (0) 2014.09.15
crontab  (0) 2014.09.15
tar 압축과 풀기  (0) 2014.09.15