다른곳에서 이미지 링크 안되게 (아파치 이미지 외부링크 차단) > LINUX

본문 바로가기

사이트 내 전체검색

뒤로가기 LINUX

다른곳에서 이미지 링크 안되게 (아파치 이미지 외부링크 차단)

페이지 정보

작성자 최고관리자 작성일 21-02-10 17:06 조회 8,835 댓글 0

본문

다른 곳에서 이미지 링크 안되게 (아파치 이미지 외부링크 차단)

2.  다른 곳에서 images를 link하지 못하도록 (hotlink 방지)
                                                                                                       
다른 곳에서 파일을 링크하지 못하도록 하는 것을 hotlink 방지라고 한다.
hotlink 방지설정을 통하여
- 외부 사이트에서 링크를 통한 컨텐츠 유출 방지와
- 트래픽 감소 효과를 볼 수 있다.
                                                                                                       
1) 디렉토리를 제한하는 방법
                                                                                                       
referer 체크를 통해 외부에서 /images 이하디렉토리의 파일을 link하지 못하도록 한다.
이를테면 truefeel.kr 이라는 사이트가 있을 때
truefeel.kr내에 있는 동영상을 이 도메인에서는 링크할 수 있지만
 외부 사이트에서는 이 동영상을 링크해도 권한이 없도록 할 수 있다.


SetEnvIf Referer "^http://localhost/"  local_referal
 SetEnvIf Referer "^http://127.0.0.1/"  local_referal
 SetEnvIf Referer "^http://홈페이지명/" local_referal
 SetEnvIf Referer "^$"                  local_referal
                                                                                                       
 <Directory /usr/local/apache/htdocs/images>
    Order Deny,Allow
    Deny  from all
    Allow from env=local_referal
 </Directory>



 2) 이미지 파일 확장자로 제한하는 방법 (Referer 사용)
    서비스 페이지가 ????.truefeel.kr 일 때

SetEnvIfNoCase Referer "^http://localhost/"        local_referal
 SetEnvIf      Referer "^http://127.0.0.1/"        local_referal
 SetEnvIfNoCase Referer "^http://(.*).truefeel.kr/" local_referal
 SetEnvIfNoCase Referer "^http://truefeel.kr/"      local_referal
 SetEnvIfNoCase Referer "^$"                        local_referal
                                                                                                       
 <Files ~ "\.(gif|jpg|jpeg|png|bmp)$">
    Order deny,allow
    Deny  from all
    Allow from env=local_referal
 </Files>



 3) 이미지 파일 확장자로 제한하는 방법 2 (Rewriting Rule 사용)
RewriteEngine On
 RewriteCond %{HTTP_REFERER} !^$
 RewriteCond %{HTTP_REFERER} !^http://truefeel.aaa/.*$          [NC]
 RewriteCond %{HTTP_REFERER} !^http://www.truefeel.aaa/.*$      [NC]
 RewriteRule \.(jpg|jpeg|gif|png|bmp)$ /images/deny.jpg [NC,L]
   

위처럼 설정하면 위 2개의 URL과 브라우저의 주소창에 이미지를 직접입력한 경우를 제외하고는
/images/deny.jpg를 보여주게 된다.
NC(no case)는 대소문자 구분하지 않음. L은 마지막 룰임을 표시한다.


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

SetEnvIfNoCase Request_URI "^/upload/"            local_referal





 6. 업로드 디렉토리의 .php파일은 text처럼 인식하기

php나 cgi 등으로 파일 업로드 가능하도록 구현된 경우 .php나 .html 등의 파일을 업로드할 수
 있는 실수를 범할 수 있다.

이런 실수를 하더라도 지정한 업로드 디렉토리에 있는 .php나 .html 파일을 php프로그램으로
 인식하지 않고 일반 텍스트 파일로 판단하도록 설정하여 보다 안전한 웹페이지 구성이 가능하다.
다음은 /upload/ 와 /files/ 디렉토리 아래의 php파일은 일반 텍스트로 인식하라는 설정이다.


 <Directory ~ "/usr/local/apache/htdocs/(upload|files)">
        RemoveType .html .php
 </Directory>

위에서 ~ 기호는 디렉토리 경로에 정규 표현식을 사용하겠다는 의미로 (upload|files) 부분을
 정규 표현식으로 인식한다. 따라서 htdocs/ 이하의 upload 디렉토리와 files 디렉토리를 의미한다.

단순히 /home/truefeel/public_html/data 디렉토리라면
<Directory "/home/truefeel/public_html/data"> 와 같이 설정하면 된다.


7. 참고 자료

* Apache Directives
  http://httpd.apache.org/docs/mod/directives.html
 * Apache Authentication and Access Control
  http://www.apache.kr.net/documents/authplus-story.html


출처 : http://coffeenix.net/board_print.php?bd_code=711

댓글목록 0

등록된 댓글이 없습니다.

Copyright © beautipia.co.kr. All rights reserved.

contact : webmaster@beautipia.co.kr

PC 버전으로 보기