메아리 저널

스팸에 대처하는 우리의 자세 2

스팸에 대처하는 우리의 자세에 이어서...

코멘트 스팸을 막을 방법을 생각해 보고 있었다. 트랙백보다 코멘트가 훨씬 자주 사용되기 때문에 가급적이면 사람이 귀찮은 짓을 적게 해도 효과가 있는 방법을 생각해 보고 있었는데, 자바스크립트를 사용하지 않는 방법은 도저히 없겠다 싶어서 역시 뭔가 테스트를 만들어야 하나 하다가 한 가지 방법을 생각해 냈다.

  • 자바스크립트를 사용할 수 없는 브라우저에서는 "자바스크립트를 사용하실 수 없다면 이 페이지의 주소 뒤에 어쩌구 저쩌구를 붙이세요"와 같은 문구를 (앞에서 설명한 방법과 같이) 보이게 한다. 그 주소로 접속했을 경우 그냥 답글 등록이 가능하다.
  • 자바스크립트를 사용할 수 있는 브라우저에서는 위의 문구는 안 보이고 자바스크립트가 답글 등록을 중개한다. 당장 생각나는 방법은, 외부에 드러나지 않는 인자(예를 들어서 관리자가 미리 입력해 둔 passphrase)가 개입하는 방법으로 고유한 key를 만든 뒤, key는 보여 주지 않고 key에 따라 적절한 자바스크립트 코드를 생성해 내거나 필드 이름을 뒤섞는다던지 한다. 자바스크립트 코드는 글의 해쉬 값을 받아서 그 값을 적절히 변형시킨 뒤에 실제 내용들과 함께 보내고, 블로그 프로그램은 그 결과를 해석해서 정상적으로 등록된 글인지 확인한 뒤 실제로 보여 준다.

따라서 자바스크립트를 해석할 수 없다면 바로 등록이 실패할 것이다. 일단은 나쁘지 않은 방법이라 생각하여 토끼군 작업실 다음 버전에서 쓸 생각이다.

덤: 물론 베이시안 필터 같은 걸 써도 되겠지만 실제로 사용해 본 사람들의 평을 보니까 학습을 웬만큼 해도 상당히 귀찮다고 해서 안 쓰려고 한다. 제1종 오류(스팸인데 스팸이 아니라고 판단하는 경우)와 제2종 오류(스팸이 아닌데 스팸이라고 판단하는 경우)가 둘 다 무시할 수 없는 정도(얘기로는 5% 정도?)로 나타난다면 상당히 귀찮은 일이 아니겠는가. -_-;

이 글은 본래 http://tokigun.net/blog/entry.php?blogid=112에 썼던 것을 옮겨 온 것입니다.


(rev 553c824afb91)