출처 : http://tuwlab.com/ece/11228


블로그 홈페이지 운영이 어느 정도 정궤도에 올라 검색 엔진 등을 통한 유입수가 어느 정도 생기게 되면 한 종류의 불청객이 생기게 됩니다.

일명 '불펌족' 이라고 불리는, Ctrl + C, Ctrl + V 전사들입니다.

찾던 정보를 찾고나서 거기에 그치지 않고, 본문 전체를 복사해서 자신이 운영하는 블로그 등에 토씨 하나 바꾸지 않고 그대로 게재하는 방문객분들을 의미합니다.


외부링크 방지를 위한 .htaccess 파일 작성하기

다음 구문을 자신의 사이트 주소에 맞도록 적절히 수정해서 .htaccess로 저장한 뒤, 웹 디렉토리의 루트에 위치시키도록 합니다.

주소가 있는 부분은 이미지 링크를 허용할 사이트 주소를 모두 쓰면 되고, 마지막줄의 파일 경로는 대체 이미지의 경로를 입력하면 됩니다.

즉, 외부 링크로 이미지를 불펌할 경우 요청한 이미지 대신 대체 이미지가 표시됩니다.

.htaccess
1
2
3
4
5
6
7
8
9
10
11
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?(www를 제외한 사이트 주소) [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?naver.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?nate.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?daum.net [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?paran.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.co.kr [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.co.com [NC]
RewriteRule \.(gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)$ http://(대체 이미지 경로) [NC,R,L]

3, 11번째 줄을 자신의 사이트 상태에 맞도록 적절히 수정해 주도록 합니다.

4~10번째 줄은 Referer가 검색엔진인 경우 차단하지 않기 위해 삽입한 줄입니다. 검색엔진에서도 차단하고 싶으면 이 줄을 삭제해 주면 됩니다.

대체 이미지는 도메인이 다른 곳에 저장된 이미지의 경로를 지정해야 합니다. 즉, 대체 이미지를 같은 사이트에 지정하려면 이 방법이 아닌 조금 다른 방법을 사용해야 합니다.

대체 이미지를 표시하지 않으려면 마지막줄을 다음과 같이 입력하도록 합니다.

11
RewriteRule \.(gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)$ - [NC,F,L]


.htaccess 자동 생성 사이트

.htaccess파일을 수동으로 만드는 과정이 귀찮다면 다음 사이트를 통해 필요한 정보 입력만으로 자동 생성해서 사용할 수 있습니다.

http://www.htaccesstools.com/hotlink-protection/

htaccesstools.png
▲ htaccesstools.com - 외부 링크 방지용 .htaccess파일 자동 생성기

  • Allowed Domains: 사이트의 주소를 입력합니다.
  • Allowed Blank Referers: Request의 Referer 필드가 비어 있을 경우 어떻게 처리할지를 선택합니다. 크롤러가 아닌 일반적인 브라우저의 경우 Referer필드가 비어있는 Request를 만드는 경우는 거의 없으므로 허용(Allow)해 두어도 크게 문제가 되지 않습니다.
  • Blocked Image URL: 대체 이미지의 경로를 입력합니다.
  • Files To Protect: 외부링크를 방지할 파일의 확장자를 Space로 구분하여 나열합니다.


=========================================


외부에서 불법 링크를 차단 할 경우 (내부링크는 허용됨)
apache virtualhost부분에 아래 추가

   SetEnvIFNoCase Referer "daum.com" link_allow
   SetEnvIFNoCase Referer "111.111.13.111" link_allow - localhost를 지정해주지 않으면 IP로 접속시 이미지 깨짐
   <FilesMatch "\.(gif|jpg|)$"> - gif|jpg 지정할 경우 웹페이지중 gif 및 jpg는 외부링크는 허용안됨 추가로 확장자 지정됨
ex> (gif|jpg|png|bmp|zip|tar|rar|alz|a00|ace|jpg|jpeg|txt|GIF|JPG|BMP|ZIP|TAR|RAR|ALZ|A00|ACE|TXT|mp3|MP3|mpeg|MPEG|wav|WAV|asf|ASF|wmv|WMV|swf|SWF|exe|EXE)$">
   order allow,deny
   allow from env=link_allow
   deny from all
 </FilesMatch>


 <VirtualHost *:80>
   # ServerAdmin webmaster@daum.or.kr
    DocumentRoot /home/public_html/
    ServerName daum.com
    ServerAlias www.daum.com
    SetEnvIf Request_URI \.gif image-request
    SetEnvIf Request_URI \.jpg image-request
    SetEnvIf Request_URI \.png image-request
    CustomLog logs/access_log common env=!image-request
    #ErrorLog "logs/damc.or.kr-error_log"
    #CustomLog "logs/damc.or.kr-access_log" common

    <FilesMatch "\.(gif|jpg|png|bmp|zip|tar|rar|alz|a00|ace|jpg|jpeg|txt|GIF|JPG|BMP|ZIP|TAR|RAR|ALZ|A00|ACE|TXT|mp3|MP3|mpeg|MPEG|wav|WAV|asf|ASF|wmv|WMV|swf|SWF|exe|EXE)$">
  order allow,deny
  allow from env=link_allow
  deny from all
 </FilesMatch>
</VirtualHost>