이미지 직접링크 막기

로키 (Homepage) 2007-05-11 03:47:44, Hit : 1,501, Rec. : 213
태터 팁이라기보다는 전반적인 웹사이트 운영 팁에 가깝습니다만.. 타 사이트에서 이미지를 직접 가져가서 전송량 누수가 일어나는 현상을 막기 위한 팁입니다. 다음과 같은 .htaccess 파일을 루트에 올리기만 하면 됩니다.

(꽤 널리 퍼진 코드라 출처를 찾는데 좀 애먹었지만, 이곳이 원 출처인듯 하군요.

http://www.thesitewizard.com/archive/bandwidththeft.shtml )

SetEnvIfNoCase Referer "^http://www.mydomain.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://www.mydomain.com$" locally_linked=1
SetEnvIfNoCase Referer "^http://mydomain.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://mydomain.com$" locally_linked=1
#SetEnvIfNoCase Referer "^$" locally_linked=1
<FilesMatch ".(gif|png|mp3|bmp|jpg|jpeg)$">
  Order Allow,Deny
  Allow from env=locally_linked
</FilesMatch>

이렇게 하면 루트 이하 모든 폴더에 있는 .gif, .png, .bmp, .jpg, .jpeg, .mp3 파일에 대해 자신의 계정 (mydomain.com) 외에서 보내는 요청이 거부됩니다. 커멘트 처리한 다섯번째 줄은 웹사이트가 아닌 하드 드라이브에서 파일을 요청할 경우에는 허용하라는 얘기 같은데, 별 필요를 못 느껴서 커멘트했지만 필요하다고 생각하시면 샵 표시를 지우시면 됩니다. (07/06/05 수정: FilesMatch에 mp3를 포함한채 다섯 번째 줄을 커멘트하면 쥬크박스가 안되는군요. 주의하시길.)

자기 사이트 외에서 글을 작성할 때는 이미지 호스팅이 필요한 경우도 있긴 한데, 그럴 경우 위 .htaccess 파일을 옮겨서 이미지 직접 링크를 허용하는 폴더와 금지하는 폴더를 구분할 수도 있습니다만.. 개인적으로는 그냥 루트에 넣어서 모든 폴더에 금지를 걸고 따로 무료 이미지 호스팅을 사용하는 편을 선호합니다.
siwanamu : 2007-05-1108:16:56 : X
Good^^;; 감사~~
로키 : 2007-05-1123:39:01 :  
잘 쓰시길. ^^ 몇가지 주의하실 점이라면..

이 방식으로는 <img> 태그로 이미지를 요청하는 것 뿐만 아니라 <a href="..">로 외부 사이트에서 이미지 파일에 링크를 거는 것도 금지됩니다. 개인적으로는 그 역시 괜찮은 기능이라고 생각하기 때문에 이 방식을 사용하고 있지만요.

두번째로는 구글 이미지 검색에 지장이 있을 수 있습니다. 저는 이 점도 큰 상관은 없지만, 필요하시다면 위의 예외 헤더에 mydomain.com 외에도 구글 같은 검색엔진 헤더 역시 추가하실 수 있을 것입니다.
zawoo : 2007-05-2913:41:59 : X
위 소스를 루트에?? 어떤 파일형식으로 저장해서 올리면 되나요?
로키 : 2007-05-2915:03:13 :  
.htaccess 설정은 하위 폴더에 영향을 미치기 때문에 모든 폴더에 대해 이미지 불펌을 금지하려면 루트에 넣으시면 됩니다. 그렇지 않고 예를 들어 /img 폴더에만 그런 금지를 걸고 싶다면 /img 폴더에다가 넣으시면 되겠죠. 그리고 이미 원하는 위치에 .htaccess 파일이 있다면 (FTP 프로그램에서는 '숨은 속성 파일 보기' 같은 걸 선택해야 보일 수도 있습니다) 거기에 소스를 추가하시면 됩니다.

파일 형식은 파일명 자체가 .htaccess 입니다. 저게 확장명이 아니라 파일 이름 자체입니다. 유닉스 계열 서버에서 사용하는데, 만약 윈도우 같은 쪽이라면 어떨지 모르겠군요.
Posted by [czar]
,