아무리 내가 블로그 관리를 못했다고 해설라무니 어떻게 스팸댓글이 9만개가 넘게 달렸나.

오늘 서버에 멈춤 현상이있었다.

그동안에 스팸이 쌓이고있는 줄은 알았지만 마지막으로 본 스팸 갯수가 2만개 정도였는데 오늘 다시금 확인해보니 자그만치거의 10만개에 육박했다.

순수한 택스트 용량으로만 자그만치 350메가!!!!

예전에는 댓글 목록을 한 페이지에 1000개씩 봐가면서 혹시라도 써져있을 정상적인 댓글을 눈으로 골라내곤 하였지만 10만개라면 1000개씩 페이지를 넘긴다고 해도 100페이지다. 그리고 말이 100페이지지 그걸 일일히 스크롤 넘겨가면서 정상적인 댓글을 골라내는 작업을 한다면 로딩시간 + 찾는시간 등등을 대충 더해봐도 꼬박 하루 이상은 걸릴 것이라는 생각이 들었다.

후…
그래…

mysql로 접근해서 걍 바로 sql 날려서 지우자꾸나.

요즘 스팸 댓글은 예전과는 달리 동일IP 및 동일url을 포함하여 이를 기준으로 쏘질 않는다. IP도 다르고 작성자명도 다르고 내용조차도 다르다. 하지만 이들의 공통점은 영어라는 거. 자 그렇다고 한다면 과연 한글로 된 댓글은 남기면서도 영문으로 된 스팸댓글만을 지우려면 어떤 형식의 패턴이 적당할까?

일단 대부분의 스팸댓글은 “http://” 로 시작되는 도메인을 포함한다. 이는 보통의 url 패턴을 바로 링크화시켜주는 요즘 블로그에 쓰게 된다면 바로 클릭만으로 자신의 사이트로 들어올 수 있게 만든다. 또한 이 경우 해당 사이트에서는 어디를 통해 들어왔는가를 알 수 있게 끔 리퍼러도 알 수 있기 때문에 접속자 수가 많은 사이트를 골라내서 맹공격을 퍼부울 수 있다.

하지만 분명 어떤 분들은 이렇게 링크가 걸리는 것을 알기 때문에 댓글을 보는 사람들이 보다 편안하게 이동할 수 있도록 직접 댓글에 http:// 까지 적는 분들이 계신다.

하여 http:// 의 패턴으로 댓글을 삭제하는 건 일단 패스.

다음으로 많이 골라낼 수 있으면서 한글로 된 댓글에는 경우에 수가 적은건 어떠한 것이 있을까? 대충 유형을 살펴보니 스팸댓글은 여러 도메인을 나열하는 형식이 많았다. 또한 이렇게 나열한 도메인들 사이에는 많은 경우 ” or “의 문자열이 포함되어 있었고 말이다.

자.. 함 쿼리를 날려보자.
그 결과는?
11524개 삭제 완료!!

이 블로그의 약 1500개의 한글 댓글 중 아마도 어떤 분은 ” or “의 문자열 패턴을 사용하신 분도 계실 듯 하지만 대를 위해 소를 희생할 수 밖에 없었다.T.T

아래는 스팸댓글을 날려버리기 위한 쿼리들과 그 결과이다. 전체는 아니지만 혹시나 댓글관리시 쿼리를 직접날릴 수 있는 분들이 계시다면 스팸댓글 삭제시 참고가 되실지도 모르기에..

mysql> delete from tt_Comments where comment like ‘%kaboodle%’;
Query OK, 19295 rows affected (6.65 sec)

mysql> delete from tt_Comments where comment like ‘%1up%’;
Query OK, 28581 rows affected (4.46 sec)

위의 두놈이 아주 악날한 놈이다.

mysql> delete from tt_Comments where comment like ‘%mograph%’;
Query OK, 2407 rows affected (1.99 sec)

mysql> delete from tt_Comments where comment like ‘%moodle%’;
Query OK, 9445 rows affected (1.70 sec)

mysql> delete from tt_Comments where comment like ‘%viwo%’;
Query OK, 0 rows affected (1.05 sec)

mysql> delete from tt_Comments where comment like ‘%index.php%’;
Query OK, 5623 rows affected (1.42 sec)

mysql> delete from tt_Comments where comment like ‘%default.aspx%’;
Query OK, 1179 rows affected (1.00 sec)

mysql> delete from tt_Comments where comment like ‘%teens%’;
Query OK, 42 rows affected (1.02 sec)

mysql> delete from tt_Comments where comment like ‘%.aspx%’;
Query OK, 778 rows affected (0.98 sec)

mysql> delete from tt_Comments where comment like ‘%sproutit%’;
Query OK, 539 rows affected (0.96 sec)

mysql> delete from tt_Comments where ip like ’89.%’;
Query OK, 302 rows affected (0.31 sec)

mysql> delete from tt_Comments where ip like ‘198.%’;
Query OK, 13 rows affected (0.29 sec)

mysql> delete from tt_Comments where comment like ‘%http://forum.%’;
Query OK, 446 rows affected (1.04 sec)

mysql> delete from tt_Comments where comment like ‘%livelylatin%’;
Query OK, 129 rows affected (0.92 sec)

mysql> delete from tt_Comments where comment like ‘%<a href%’;
Query OK, 1453 rows affected (0.93 sec)

mysql> delete from tt_Comments where comment like ‘%world66%’;
Query OK, 1748 rows affected (0.93 sec)

mysql> delete from tt_Comments where comment like ‘%michael%’;
Query OK, 2095 rows affected (0.96 sec)

mysql> delete from tt_Comments where comment like ‘%http://forum%’;
Query OK, 864 rows affected (0.79 sec)

mysql> delete from tt_Comments where comment like ‘%/forum%’;
Query OK, 1303 rows affected (0.78 sec)

mysql> delete from tt_Comments where comment like ‘% or %’;
Query OK, 11524 rows affected (0.89 sec)

mysql> delete from tt_Comments where comment like ‘%2check %’;
Query OK, 0 rows affected (0.27 sec)

mysql> delete from tt_Comments where comment like ‘%2check%’;
Query OK, 199 rows affected (0.28 sec)

mysql> delete from tt_Comments where comment like ‘%viddler%’;
Query OK, 37 rows affected (0.27 sec)

mysql> delete from tt_Comments where comment like ‘%teen%’;
Query OK, 5 rows affected (0.28 sec)

mysql> delete from tt_Comments where comment like ‘%hacien%’;
Query OK, 59 rows affected (0.27 sec)

mysql> delete from tt_Comments where comment like ‘%.dm/%’;
Query OK, 3 rows affected (0.27 sec)

mysql> delete from tt_Comments where comment like ‘%angelfire%’;
Query OK, 71 rows affected (0.27 sec)

mysql> delete from tt_Comments where comment like ‘%freehostia%’;
Query OK, 34 rows affected (0.27 sec)

위의 방식으로 삭제한 후 나머지는 수작업으로 지워보니 그동안 스팸댓글에 파뭍혀서 보이지 않았던 분들이 댓글이 보이기 시작했다. 아.. 마치 모래를 채로 걸러내니 조약돌 몇개만 덩그러니 보이는 느낌..

그리고 마지막으로
예전에 제 블로그를 자주 방문하여 댓글을 남겨주셨던 trendon님.
의도치 않게 불편을 드려 정말 죄송합니다.

설마 이놈들이 trendon님의 댓글을 통해서 스팸을 날리리라고는 상상도 못했네요.
그동안 제가 블로그를 신경쓰고 있지 않던 것이 그렇게 많은 고통을 드리리라고는..T.T

댓글로 남겨주신 해당 댓글은 삭제하였습니다.
그리고 일단 필터링에 http://로 시작하는 문자열 패턴이 포함되면 제 블로그에서는 모두 스팸으로 처리하게 하였습니다만 혹시나 그러한 현상이 지속되면 말씀주세요. 바로 조치하도록 하겠습니다.

다시금 죄송합니다.

에잉~ 이제 정말 바꿀꺼야!!!
아 맞다… 아직 스팸트랙백도 남았지. 흑~

Tags:

4 Comments

  1. 워드프레스의 나라로 오세요. ^^

    텍스트큐브-> 워드프레스 이사도구 (asadal.bloter.net/5629)

    전 스팸때문에 워드프레스를 쭈욱 사용중이랍니다.
    최근에는 텍스트큐브 댓글 관리 플러그인이 추가되어 블로그질 할맛나요. ^^

    1. 그동안 태터툴즈를 커스터마이징해둔게 아까워서리 어떻게 하고는픈데 바로 실행으로 옮기지는 않네요.. T.T

Leave a Reply

Your email address will not be published. Required fields are marked *