메아리 저널

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

리카넷 - 스팸 트랙백을 막는 간단하고 강력한 방법 (이런 것들 reference할 때마다 다음에 블로그를 만들면 이런 것들을 자동으로 표시해 줄 수 있는 걸 만들어야 한다는 생각만 든다. -_-)

스팸을 막는 방법을 둘로 나눈다면, 한 방법은 등록되는 게시물의 패턴을 통해 "불량 게시물"을 가려 내는 것(베이시안 필터나 사용자 추적 등)이고, 다른 한 방법은 사람은 할 수 있지만 기계는 못 하거나 존내 힘든 뭔가를 추가하는 것(CAPTCHA 같은 것들)이다. 후자에서 중요한 것은 기계가 쉽게 통과할 수 있으면 안 된다는 것이다. (예를 들어서, 간단한 CAPTCHA는 이미 문자 인식이 가능해진 상태이며, 특정한 이미지에 나타나는 사물의 이름을 입력하라는 것은 이미지 파일 이름을 비교하거나 해쉬를 비교하는 것으로 쉽게 뚫릴 수 있다.)

이 블로그에서 트랙백 스팸을 거부하는 데 사용되는 방법은 후자에 속하며 지극히 간단하지만 상당한 효과가 있다. 원래 쓰여 있는 트랙백 URL으로는 트랙백이 보내지지 않으며, 위에 쓰여 있는 내용(특정 문자열을 다른 문자열로 바꾸라는)을 따라야 트랙백을 보낼 수 있다. 너무 트랙백 스팸이 많이 와서 패턴 등록하기도 짜증나길래 적용했는데 지금까지 단 한 개의 스팸 트랙백도 달리지 않은 걸로 봐서 일단은 매우 성공적이었던 것 같다.

이 방법은 (저 글에도 답을 했듯이) 특정 부류의 사람들이 쉽게 알 수 있는 정보를 가지고 방문자를 필터링하는 시스템에서 힌트를 얻었다. 예를 들어서, 스즈미야 하루히 팬 사이트인데 관심 없는 사람들은 웬만하면 안 들어 왔으면 좋겠다 싶으면 이런 문제를 넣는 것이다.

스즈미야 하루히 애니메이션 엔딩에서 다섯 명 중 왼쪽에서 두 번째에 있는 캐릭터의 풀 네임은? (정답: 나가토 유키)

...그다지 마음에 드는 예시는 아니지만 아무튼 관심 있는 사람이라면 알아서 찾아 보던지 할 테니 어느 정도의 통제는 가능하다. 이 방법이 기계적인 접근을 막는 데 사용될 수도 있다는 건 나중에 차 리서 님 위키를 보고 깨달았는데, 메일 주소를 "리서 골뱅이 지메일 닷 컴"이라고 쓰고 "리서"의 철자는 도메인과 같으며 지메일은 구글 메일의 약자라고 친절하게(?) 써 놓으셨다. 간단하지 않은가? 감동받아서 나도 비슷한 방법으로 메일 주소를 쓰고 있다.

이런 접근 방식은 물론 정형화된다면 예전과 마찬가지로 맘만 먹으면 뚫을 수 있게 되겠지만, 사람들마다 다른 방법(예를 들어서 트랙백 페이지의 실 주소와 그 위에 표시될 "주소 변경 방법"을 지정할 수 있게 하는)을 쓰게 된다면 현실적으로는 스팸 등록기가 어느 수준의 인공지능(또는 무지막지한 DB)을 요하는 기법을 쓰지 않는 한 등록이 불가능해질 것이다. 아예 이글루스 같은 블로그 서비스 업체에서 이런 옵션을 지정할 수 있도록 하면 효과가 좋을 것이며, 대부분의 업체가 동참한다면 아예 블로그에 스팸 댓글 다려고 하는 뻘짓을 하는 인간들이 줄어들 수도 있겠다는 생각이 든다.

혹시 이 방법을 자기 블로그에 적용하시겠다면 부담 갖지 마시고 마음대로 사용하시라. 나한테 연락하거나 밥을 사 주거나(-_-;) 할 필요는 전혀 없으나 사 주시면 물론 사양할 이유가 없고... :)

* 기말고사 첫 타자는 정신 없이 선방했습니다. 아이고 삭신이야;

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


(rev 553c824afb91)