RadarURL

웹 프로그래밍
2011.09.22 23:14

외부 링크 방지

조회 수 9276 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

개인 계정에서 블로그등의 사이트를 운영하시는 분들 중 가끔 외부에서의 컨텐츠 직링크로 인해 트래픽 초과에 걸리시는 분들이 많습니다. 트래픽 문제가 아니더라도, 무단 링크로 인해 저작권을 침해받는 경우도 있겠죠.
이를 해결하기 위해 레퍼러비교 같은 방법도 쓰곤 하는데, 아마 .htaccess 파일을 이용한 것도 많이들 아실 겁니다.

간단히, .htaccess와 워터마킹 기술을 이용해 이미지 링크 제어를 하는 법을 소개합니다.

일단, 이미지들이 저장되는 디렉토리에 .htaccess파일을 만듭니다. (이미 존재한다면 아래의 소스를 마지막에 추가하시면 됩니다.)

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} .*jpg$|.*gif$|.*png$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !explug\.com [NC]
RewriteCond %{HTTP_REFERER} !eouia0\. [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteRule (.*) image.php?image=$1

...........
잠깐 설명을 하자면,

RewriteCond %{HTTP_REFERER} !explug\.com [NC]
RewriteCond %{HTTP_REFERER} !eouia0\. [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]

이 부분에 링크를 허용할 URL들을 기재합니다. 정규식 패턴이므로 잘 알아서.. :)
위의 예의 경우 explug.com, eouia0가 포함되는 사이트, google 등에 링크를 허용한 경우입니다. 이 경우에는 원본 이미지를 마음대로 가져다 쓸 수 있습니다.
그외의 URL에서 링크가 걸릴 경우에는

RewriteRule (.*) image.php?image=$1

에 따라, image.php?image=파일이름 으로 리다이렉트됩니다. 만약 그냥 링크 자체를 끊고 싶으시다면 여기에 아무거나 써주셔도 되지요.

이제 워터마킹 처리를 위해 image.php를 작성합니다. GD라이브러리를 사용했으므로 GD가 사용가능한 계정이어야 합니다.

<?
define ("WATERMARK", "watermark.jpg");

header("Content-type: image/jpeg");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

$pic = strip_tags( $_GET['image'] );

$image_url = urldecode($pic);

if (!@fopen($image_url, "r")) {
   $dst_img = imagecreatefromjpeg(WATERMARK);
   $res = imagejpeg($dst_img, "", 100);
   die();
}

$file = pathinfo($image_url);
switch(strtoupper($file["extension"])) {
   case "JPG":
       $src_img = imagecreatefromjpeg($image_url);
       break;
   case "GIF":
       $src_img = imagecreatefromgif($image_url);
       break;
   case "PNG":
       $src_img = imagecreatefrompng($image_url);
       break;
}

$src_w = imagesx($src_img);
$src_h = imagesy($src_img);

$portion = $src_h / $src_w;
$dest_w = 300;
$dest_h = round($dest_w * $portion);

$dst_img = imagecreatetruecolor($dest_w, $dest_h);
imagecopyresized($dst_img, $src_img, 0, 0, 0, 0, $dest_w, $dest_h, $src_w, $src_h);

$watermark = imagecreatefromjpeg(WATERMARK);

$watermark_w = imagesx($watermark);
$watermark_h = imagesy($watermark);

$overlay_img = imagecreatetruecolor($watermark_w, $watermark_h);
imagecopy($overlay_img, $watermark, 0,0,0,0, $watermark_w, $watermark_h);
imagedestroy($watermark);

$white  = imagecolorallocate($overlay_img, 0xFF, 0xFF, 0xFF);
imagecolortransparent($overlay_img, $white);

$offsetX = $dest_w - $watermark_w - 3;
$offsetY = $dest_h - $watermark_h - 3;

imagecopymerge($dst_img,$overlay_img,$offsetX,$offsetY,0,0,$watermark_w,$watermark_h, 100);
imagedestroy($overlay_img);

$res = imagejpeg($dst_img, "", 100);
imagedestroy($dst_img);
?>

<VirtualHost *:80>
    DocumentRoot ...
    ServerName sir.co.kr
    ServerAlias www.sir.co.kr wwww.sir.co.kr ww.sir.co.kr
    #  외부링크방지
    SetEnvIfNoCase Referer sir\.co\.kr link_allow
    SetEnvIfNoCase Referer www\.sir\.co\.kr link_allow
    SetEnvIfNoCase Referer ^$ link_allow
    <FilesMatch
"\.(jpe?g|gif|png|bmp|avi|swf|mpe?g|zip|z[00-99]|rar|mp[1-9]|arj|exe|asf|wm[a-z]*|ra[a-z]*|alz|ZIP|Z[00-99])$">
        Order Deny,Allow
        Allow from env=link_allow
        Deny from all
    </FilesMatch>
</VirtualHost>

 

출처 : http://blog.ohmynews.com/hjlee222/185568

?

공부 게시판

공부에 도움되는 글을 올려주세요.

  1. [공지] 공부 게시판 입니다.

    Date2003.08.18 By처누 Views942020
    read more
  2. EMR을 기반으로 DW를 구축한 병원의 CRM 활용 방안 연구 = The Study on a Plan to Activate Customer Relationship Management through Data Warehouse based on Electronic Medical Record of Hospitals

    Date2026.02.06 Category논문 ByJaeSoo Views11
    Read More
  3. 호스팅케이알(hosting.kr) 도메인 가격 2배 인상으로 인한 도메인 기관 이전

    Date2026.01.16 Category인터넷 ByJaeSoo Views0
    Read More
  4. 올바른 자위습관을 가져야 하는 이유

    Date2026.01.12 Category건강 ByJaeSoo Views54
    Read More
  5. 대한민국 결정사 직업 등급표

    Date2026.01.09 Category연애 ByJaeSoo Views51
    Read More
  6. 알아두면 유용한 향수 향 종류 모음

    Date2026.01.09 Category생활 ByJaeSoo Views29
    Read More
  7. 로그인 구글 드라이브 안 쓰고 시놀로지 드라이브 쓰는 이유, 설정 방법 & 활용팁

    Date2026.01.08 Category업무 ByJaeSoo Views28
    Read More
  8. SMB 다중 채널 관리

    Date2026.01.08 Category네트워크 ByJaeSoo Views34
    Read More
  9. Synology NAS SMB 3.0 Multichannel 이용하기

    Date2026.01.08 Category네트워크 ByJaeSoo Views35
    Read More
  10. 어떻게 SSH를 통해 root 권한으로 DSM/SRM에 로그인할 수 있습니까?

    Date2026.01.08 Category네트워크 ByJaeSoo Views29
    Read More
  11. 시놀로지 나스 SMB 3.0 멀티채널 구성하는법

    Date2026.01.08 Category네트워크 ByJaeSoo Views30
    Read More
  12. RWA(Real-World Assets): 실물자산 토큰화 이해

    Date2026.01.05 Category경제 ByJaeSoo Views55
    Read More
  13. 그루밍성범죄와 가스라이팅 차이점, 처벌 수위 알아보기

    Date2025.12.23 Category생활 ByJaeSoo Views130
    Read More
  14. 전문의가 추천하는 자위 횟수

    Date2025.12.23 Category건강 ByJaeSoo Views91
    Read More
  15. 일상에 쉽게 적용할 수 있는 수면 관리 앱 5가지

    Date2025.12.18 Category모바일 ByJaeSoo Views162
    Read More
  16. 매일 밤에 머리 감으면 일어나는 일ㅣ탈모 전문가가 알려주는 충격적인 진실ㅣ김주용 원장 1편ㅣ닥터딩요

    Date2025.12.11 Category건강 ByJaeSoo Views145
    Read More
  17. 다친 손가락에 끼우는 실리콘 손가락

    Date2025.12.11 Category건강 ByJaeSoo Views170
    Read More
  18. 성적 취향에 대하여...

    Date2025.12.09 Category연애 ByJaeSoo Views310
    Read More
  19. fwb(Friends with Benefits)에 대해

    Date2025.12.09 Category연애 ByJaeSoo Views254
    Read More
  20. 자위가 잠자는 데 도움이됩니까? 알아봅시다!

    Date2025.12.09 Category건강 ByJaeSoo Views263
    Read More
  21. 야동 실태보고서

    Date2025.12.09 Category건강 ByJaeSoo Views240
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 127 Next
/ 127


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너