재미있는 오늘의 리퍼러들

다른 설치형 블로거분들도 그런지 모르겠지만, 리퍼러 경로를 확인하는 것은 여러모로 재미있다. 자신의 블로그를 방문한 사람들이 어떤 경로로 왔는지 알수 있을 뿐만 아니라, 의외의 요소들이 있기도 하다.

사용자 삽입 이미지
…. 가끔 이런 사람도 있다. 고작 영화 어비스가 나와서 실망했을지도 모르겠다.

사용자 삽입 이미지하하… 누구신지 모르겠지만, 이걸 왜 검색하셨나요?
사용자 삽입 이미지저 검색어”Draco가 개의 스팸을 먹었습니다”의 기원은 분명 내 안티스팸 플러그인의 메시지일 것이다.

사용자 삽입 이미지
이미지 무단링크를 차단하고 기록하는 프로그램, Draco Inspector
알툴바? 알툴바에 이미지를 표시하는 기능이 있는 건가? …알툴바를 싫어하니 일단 차단하도록 하여라.

발행일
카테고리 일상 태그

.htaccess 활용해 불필요한 리퍼러 제거하기

최근에는 리퍼러를 이용한 광고가 일반화되어 있습니다. 게다가 live.com 검색엔진의 경우는 LIVSOP라는 이상한 키워드를 가진 리퍼러로 테스트 방문을 해서 방문자 숫자와 트래픽 사용을 폭증시키기도 하죠.

이런 불필요한 리퍼러들을 제거하기 위한 .htaccess 팁입니다.

블로그가 설치된 디렉토리에는 .htaccess 가 이미 설정되어 있을것입니다. 그 파일을 열어서 다음과 같이 두줄을 추가해줍니다.

SetEnvIfNoCase Referer "sex|casino|porno|adult|mature|xxx|fuck|lesbian|nude|gambling|LIVSOP|poker|goodslim|betting|buy|n95bD0l34bS2z3|slots|renter|<iframe|viagra|fillbest" hacker
Deny from env=hacker

차단이 필요한 단어는 단어1|단어2 이런식으로 계속 추가해주면 됩니다.

해당 단어가 리퍼러 주소에 포함되어 있으면 블로그에 접근 자체가 불가능합니다.

리퍼러기록을 보면 페이지를 이동시켜버리는 리퍼러 스팸

최근 블로그툴의 “리퍼러 기록”을 보면 자동으로 광고페이지로 이동시켜 버리는 리퍼러 스팸이 활동하고 있습니다.


리퍼러 로그 페이지를 보면, 저렇게 깨지는 화면이 나옵니다.


그 다음 순간 약장사 페이지로 이동됩니다.

원리를 보자면, 리퍼러주소에 iframe 태그를 삽입하는 방법을 씁니다.


해당 스팸의 리퍼러 기록

예를 들어 저 광고의 경우

http://스팸광고사이트/search/results.html?query=Buy%20viagra%20for%20lowest%20prices
%20Buy%20viagra%20Online%20Now%20%3CIFRAME%20src%3D%2F%2Fmy-dom.info%2Fm.php
%3E&search.x=34&search.y=10&search=search

그림과 같이 리퍼러 주소가 마치 ‘검색엔진을 통해 검색해서 들어온것’처럼 구조가 꾸며져 있고, 검색어 부분에 iframe태그를 삽입해 놓았습니다. 그래서 리퍼러로그정리(RefererURLBeautifier) 플러그인 같은것으로 검색어를 표시하는 플러그인을 쓸경우 iframe에 삽입된 자바스크립트에 의해 리다이렉션을 당하게 됩니다.

해결법

RefererURLBeautifier 플러그인을 1.04이상으로 업데이트 합니다. 링크 1.04에서는 htmlspecialchars()함수로 키워드를 변환시켜서 iframe태그가 사실상 무력화 됩니다.

만약 버전업을 하지 못할 이유가 있거나 더 확실히 하고 싶다면 RefererURLBeautifier 플러그인의 index.php 파일을 열어

return ($keyword) ? ‘<span style=”font-weight: bold; color: #594″>[‘.$keyword.’]</span> ‘ . UTF8::lessenAsEm($url, 70 – UTF8::lengthAsEm($keyword)) : UTF8::lessenAsEm($url, 70);

위와 같은 return 이 이루어지는 바로 위에 strip_tags()함수로 html을 제거해줍니다.

$keyword = strip_tags($keyword);
return ($keyword) ? ‘<span style=”font-weight: bold; color:
#594″>[‘.$keyword.’]</span> ‘ . UTF8::lessenAsEm($url, 70 –
UTF8::lengthAsEm($keyword)) : UTF8::lessenAsEm($url, 70);

ps.
“리퍼러 기록”뿐 아니라 “키워드 통계”에서도 리다이렉션이 작동합니다.
이것도 응급조치로 refererkeyword 플러그인의 index.php를 열어서 147줄에       

document.write(unescape(“<?php echo $keywordkey;?>”));

document.write(unescape(“<?php $keywordkey = strip_tags($keywordkey); echo $keywordkey;?>”));

로 고쳐주면 해결됩니다.

추가

텍스트큐브용 공식 패치가 발표되었습니다.