사용자 삽입 이미지
일단 불필요하게 글을 읽는 수고를 덜기위해 먼저 밝히면, 이글은 DB에 들어가서 직접 지우는 방법에 대한 이야기다. MYSQL을 직접 접근할 수 있는 사람만 보자.
그리고 작은(?) 문제가 있다. 실행하기전에 끝까지 읽자. ^^

테터툴즈를 쓰는 모든이의 고민은 스팸덧글이다.
ESA등 쓸만한 플러그인이 있고, 최호진님의 OpenID덧글등의 덧글자체에 로그인을 달아서 원천봉쇄하는 방법도 있지만, 대부분이 원하는 퀄리티도, 방법도 아니다.
그럼?

스팸덧글이 등록되지 않도록 하자는건데... 관점을 좀 바꿔보았다.
기존에 테터의 스팸덧글 방지용 플러그인들은 보면.. 스팸덧글들에서 어떤 패턴을 찾아서 써지는것 자체를 방지하려고 한다. URL 에 sex란 단어가 있다던가, 영문네임으로 된 덧글이라던가 하는 식으로 말이다.
하지만, 스팸덧글을 때문에 고생해본사람은 알겠지만, 이게 패턴이 있는듯 하면서 없고, 더군다나 스팸에 당할때 마다 그 패턴이 바뀐다.
그럼 등록이 안되게 할방법을 찾을게 아니라... 등록될 수 밖에 없다면.. 스팸덧글을 쉽게 삭제할 수 있는 방법을 찾는게 차선책이 될 수도 있다.

그렇게 생각하면 의외로 쉽게 대안이 나온다.
스팸덧글을 '스팸'으로 보지 말고 '도배'로 보면 쉽다.



select  comment , count(comment)  from tt_Comments
group by comment
having count(comment) > 1

위의 쿼리는 덧글중 내용이 동일한 글이 2번이상 등록된 것들만 등록수와 보여주는 쿼리다.
일반적으로 스팸쿼리의 등록패턴을 보면 한차례 '공격'으로 하루밤사이에 수백건이 등록이 된다. 그러면 내용이 같은게 50~100건 씩 등록이 된다.
상식선에서 내용이 동일한 덧글이란 일반적이지 않으므로, 저렇게 조회를 하고, 나온 덧글을 내용을 기준으로 삭제하면 의외로 간단하다. 내가 사용한 쿼리다.

Delete  from tt_Comments
where comment in ('나는 너에 합의한다 이다. 그것은 이렇게 이다.','좋은 위치! 너를 감사하십시요.','우수한과 아주 도움이 되는!','너의 위치를 방문한 즐기는!','관심을 끌. 너가 동일할 좋을 지점을 다시 배치할 것 을 나는 희망한다.','중대한 위치 축하!경이롭 위치!','여보세요, 아주 좋은 위치!','중대하고 유용한 위치!','좋은 위치는 그것 찾아본 즐겼다!','아주 재미있는 지점. 감사.', '그런 경이롭 위치를 위해 많게의 감사!')

이걸 돌리고 개별건들을 몇개 처리했더니 1천여개 등록되어있는 스팸을 모두 삭제했다.
나는 PHP를 할줄 모르니까 누군가가 '도배글 삭제 플러그인'을 만들어주어도 반갑겠다.
근데 문제가 있다. Posting에 있는 덧글수가 이전 스팸덧글이 가득차있을때 수가 그대로 남아있다.
밤이늦어서 테이블은 못까보겠고... 나중에 갱신쿼리를 새로 짜야 할까보다. ^^;


어쨌든 이러면 비록 스팸덧글을 막을 수는 없어도, 쉽게 삭제라도 할 수 있지 않을까?

2008/03/26 02:19 2008/03/26 02:19
Trackback address :: http://zziuni.pe.kr/zziuni/trackback/409

Comments List

Write a comment.

[로그인][오픈아이디란?]