최근에 날라드는 스팸 트랙백들 살펴보면, 패턴을 이용한 차단을 피하기 위해 서로 다른 내용의 동일 스팸 트랙백을 생성하며, 하나의 URL에서 다량으로 수집한 트랙백 주소에 단 시간내에 무작위로 발사하도록 되어있다. 이 것은 단 10분만에 100여건을 성공시키기도 한다. OR2 패치를 적용하면 영문으로 구성된 트랙백이야 차단된다 하더라도 영문에 2바이트 특수문자를 사용하거나 영문이 아닌 외국어가 들어간 스팸 트랙백에 대한 차단은 아직 무방비 상태다. 그래서 아래와 같은 꼼수를 만들어 보았다.
스팸의 인식 조건은 지정된 시간 안에 지정된 량의 수신 트랙백에서 내용(사이트명, URL, 타이틀, IP)이 동일한 트랙백을 발견하면 스팸으로 간주하고 해당 수신을 거부한다. 이것으로 모두 차단할 수는 없겠지만 대량으로 걸리는 스팸은 어느정도 차단할 수 있었다. 참고로, 정헌님의 트랙백스팸 추적과 함께 사용하면 더욱 든든하다.
rserver.php 파일의 43열 부근을 아래와 같이 수정한다.
$result = is_spam("2", "1", $title);
if (!$result) $result = is_spam("2", "2", $url);
if (!$result) $result = is_spam("2", "3", $excerpt);
/* TrackbackBlocker */
if (!$result) {
$r_limit = 5; // 검사할 최근 트랙백 설정, 기본 5개
$r_time = 1; // 시간 설정, 기본 1시간
$r_sql = "select site, url, title, regdate, ip from t3_".$dbid."_trackback order by regdate desc limit $r_limit";
$r_result = @mysql_query($r_sql);
while(list($r_site, $r_url, $r_title, $r_regdate, $r_ip) = @mysql_fetch_array($r_result)) {
if (time() - $r_regdate < 60*60*$r_time && ($REMOTE_ADDR == $r_ip && ($url == $r_url && $title == $r_title && $blog_name == $r_site && $r_ip))) {
$result = true;
break;
}
}
}
/* end of TrackbackBlocker */
Comments
Got something to add? You can just leave a comment.
저는 제가 사용하는 계정 설정인지 스팸 들어온 적이 한 번도 없습니다.
reply edit
다행이군요. 저는 중국어 스팸과 일본어 스팸도 자주 들어온답니다. 미칠 지경이에요;;
reply edit
저도 파이어준님처럼 스팸으로 골치를 앓고 있습니다. ㅠ ㅠ
reply edit
고생 많으십니다. ㅠ.ㅠ
reply edit
흑흑... 정말 원하던 거였습니다...
혹 이건 가능한건지요... 근본적으로 막는것이 중요하지만 그렇지 못할경우 삭제도 중요하다고 봅니다.. 체크박스를 이용하여 수량별로 체크하여 삭제할수 있게 개조할수 있을까요??
reply edit
6월경에 클래식 OR2 패치가 있었습니다. 이것을 적용하시면 일괄삭제 및 체크한 항목 삭제기능이 추가됩니다.
http://www.tattertools.com/classic/index.php?pl=21
reply edit
영문으로
reply edit
Your Reaction Time!