불펌 블로그 방지 이미지

밑의 글에서 생각했던 것을 구현.

아이디어는 매우 단순함 – 현재 구현은 더더욱 -_-;

  • HTTP Referer로 전달되어오는 부분 (HTTP 리퀘스트 쪽에 헤더로 넘어옴)을 해석해서 upnl.org 가 있으면 1 pixel by 1 pixel의 하얀 투명 이미지를 전송
  • 그렇지 않은 경우 800 by 40의 “Not allowed referer: 실제 리퍼한 주소” 라고 적힌 이미지가 전송됨

구현한 코드는 매우 짧은 PHP 코드다 – libpng와 php-gd 가 설치된 곳에서 실행 가능함

header( "Content-type: image/png" );
if( FALSE != strpos( $_SERVER["HTTP_REFERER"], "upnl.org" ) )
{
    imagepng( imagecreatefrompng( "pixel.png" ) );
}
else
{
    $im = imagecreatetruecolor( 800, 40 );
    $color = imagecolorallocate( $im, 255, 255, 255 );
    imagestring( $im, 10, 10, 10, "Not allowed referer: ".$_SERVER["HTTP_REFERER"], $color );
    imagepng( $im );
    imagedestroy( $im );
}

이런 코드로 위의 내용이 구현된다. 실제로 플러긴을 짠다면 리퍼러 부분이 좀더 복잡해지거나 하겠지만 – 아마 설정 가능한 필드로 해야 할 듯 – 구현 자체는 어렵지 않을 것 같다. 다만 이미지 생성하는건 부담이 가니 적절한 짤방(…)이미지를 쏴주는게 좋을듯함;

1 by 1 투명 이미지는 IE 6.0에서는 투명화가 안되서 희게 보이더라 -_-; – 아마도 PNG 지원이 잘 안되는 6.0 문제인 것으로 보이며 firefox와 opera에선 잘 보임; IE 7.0에선 투명화 잘 되고 있기도하고 ( –)

…그런 의미에서 투명화 안될 때를 대비해서 1픽셀 짜리 이미지의 색을 설정해야할 듯 하기도 싶고;

정상적인 – 원본 블로그에 해당 – 글이면 다음 화면이 나오게 됨

antispam01.png

정상적인 표시

반대로 퍼가서 다른 주소의 페이지에서 나오게 되면 중간에 들어있던 공백 이미지들이 크게 확장[…]

as.png

불펌하게 되면 보이는 화면

뭐 이런식으로 주소가 나오는게 아니라 엄한 사진이 나온다거나, “매너있는 블로깅을 합시다” 정도의 문구가 찍힌 이미지가 나와도 재미있을듯 (야)

일단 WordPress 용 플러긴을 만들어보고 잘 되면 태터 용도 생각해봐야;

Author: rein

나는 ...

4 thoughts on “불펌 블로그 방지 이미지”

Leave a Reply