MovableType 스팸 대책

지난 2주간 나를 맹공습했던 코맨트 스팸이 Forestsang을 폭격하기 시작했다는 연락이 왔다.

이에 대응하는 방편으로는 몇가지가 있을텐데..

  1. MTBlacklist를 적용하는 법
  2. cgi의 파일명을 바꾸는 법
  3. Movabletype 3.0의 Typekey로 모두다 로그온 시키는 법
  4. HTML에 hidden값을 주고 cgi를 수정하는 법
  5. HTML에 hidden값을 주고 pm을 수정하는 법

나는 마지막 방편을 썼다. 코멘트 입력창을 통해 들어온 값만 받게 함으로써, 기계가 값을 직접 보내지 못하게 하는 방편의 일종이다.

우선 다음 Template을 수정해야 한다.

  • Comment Listing Template
  • Comment Preview Template
  • Commment Error Template
  • Individual Entry Archive

각 Template의 Form 마지막 줄에,

 <input type="hidden" name="goodhyun" value="spiderman" /> 

를 삽입한다.

CGI 디렉토리의 /MT/lib/MT/App/Comments.pm를 열어

my $comment = MT::Comment->new;

앞줄에

#Spam protection
if (!$q->param('goodhyun') || $q->param('goodhyun') ne "spiderman") {
return $app->handle_error($app->translate("정상적이지 못한 코멘트 입력시도입니다."));
}

를 추가 한다.

goodhyun과 spiderman 값은 마음에 드는 것으로 설정하자.

그런데 이 Movabletype, 이런 상황 발생시마다 이상과 같은 超Maniac한 곡예를 해야 하는데, 이래서야 어디 아무나 쓰겠는가…

언제던가 처음 Movabletype로 사이트를 변경한 시점에, 후배가 “프로그래머의 웹사이트네! 프로그래머들은 이렇게 꾸미는게 유행인가봐”라고 말했던 기억이 난다. “블로그”라는 말이 시사상식용어에 등장하기 훨씬 전의 이야기다.

Comments

“MovableType 스팸 대책”의 5개의 생각

  1. Accessed from following URLs…

    여기서 쓰인..
    todayslink 를 저도 설치 했습니다
    그런데 refer 가 나오지 않아서 문의 드립니다

    사용방법을 알려주세요 ^^

  2. 위의 코드를 Comments.pm의

    “Comment text is required.”));
    }

    다음에 넣는 것이 나을 것 같습니다.. MT3.11에서도 됩니다.

댓글 남기기