자동 스팸 댓글(Auto spam comment)에 대한 나의 견해

블로그 관리를 거의 하지 않다보니, 새로운 방문자들이 생겼다. 검색 로봇들은 매일매일 내 블로그에 들어와 여기저기 링크들을 들쑤시고 다니지만, 그것 말고 다른 녀석들이다. 그 이름은 바로 자동 스팸 댓글러(Auto spam comment)!

이 사회의 악인 자동 스팸 댓글러들은 아주 유혹적인 말들과 수많은 칭찬들을 난무하는데, 가끔은 혼동이 가기도 한다. 진짜 내가 쓴 글을 칭찬하는걸까, 아님 그저 스팸인걸까.. 아래는 내 블로그에 최근에 남겨진 대표적인 스팸 댓글들이다.

  • fantastic blog! I really love how it’s easy on my eyes and also the information are well written! I am wondering how I could be notified whenever a new post has been made:) I have subscribed to your rss feed which ought to do the trick! Have a nice day!!
  • I hardly comment, but I browsed a few of the comments on this page Profile | designe:;note. I do have some questions for you if it’s allright. Is it only me or do a few of these remarks come across like they are coming from brain dead people?  And, if you are posting at additional sites, I would like to keep up with you. Could you list of the complete urls of your social networking sites like your twitter feed, Facebook page or linkedin profile?
  • Very useful blog. It was very relavant. I was looking exaxtly for this. Thank you for your effort. I hope you will write more such useful post
  • Fantastic web site. A lot of helpful information here. I’m sending it to some pals ans additionally sharing in delicious. And certainly, thanks in your sweat!
  • Awesome writing style!

이 블로그에서 About 페이지나 Profile 페이지를 제외한 대부분의 컨텐츠는 한글로 쓰여졌다. 그런데 이런 영어댓글들이 난무하는거다. 그것도 칭찬들로만 가득하게… 당연히 스팸댓글이라는 사실을 알지만서도, 내 마음은 프로그램이 아닌, 사람이 남겼길 바라는 마음이 매우 크다. (칭찬들이기 때문이다. 비판은 찾아볼 수가 없다. -_ -) 그런데 이런 자동 스팸 댓글들을 왜 만든것일까? 대체 무슨 도움이 되길래 이렇게 프로그램까지 써가면서 댓글들을 남기는건지 알아보도록 하자.

1. 구글 검색 순위 높이기

아마도 가장 큰 이유가 아닌가 싶다. 대부분의 댓글 시스템에는 댓글 쓴 사람의 홈페이지 주소를 남기는 란이 있다. 프로그램들은 홍보하기 위한 홈페이지를 남기곤 하는데, 바로 이 곳이 자신의 서비스, 프로필, 상품들을 홍보할 수 있는 새로운 수단이다. 댓글을 남기게 되면 이름에 링크로 연결되어 홍보할 수 있게 된다. 링크가 왜 중요하냐면, 구글이 검색순위를 계산할 때 사용하는 페이지 랭크(Pagerank) 알고리즘에서 다른 홈페이지로의 링크는 검색순위에 영향을 미치는 큰 변수중에 하나이기 때문이다. 이렇게 링크들을 이용해서 검색순위를 높이는 하나의 예가 대부분의 블로그에 있는 “Tags Cloud” 이다. 오른쪽에 보면 본인의 블로그에도 태그 구름이 있다. 사용자의 편의를 위한 부분도 있겠지만, 랭크 순위에도 영향을 미치기 때문에 중요한 포인트인 듯 싶다.

2. 블로그 방문자들의 링크 유입

이 또한 홍보를 위한 것이다. 결국은 홍보가 전부다! 인터넷 서비스와 광고는 떨어질래야 떨어질 수 없는 관계인 듯 싶다. 돈이 중요한 자본주의 사회에서 서비스가 정보화시대를 살아남는 유일한 방법이기 때문이다.

그렇다면 이번엔 이 악성 프로그램(자동 스팸 댓글)을 막는 방법을 알아보도록 하자.

1. 자동 스팸 방지 이미지 코드

 아마도 위의 이미지를 자주 봤을 것이다. 회원가입할때도, 글을 쓸때도, 댓글을 쓸때도 여기저기서 이 아이디어를 이용한다. 아마도 프로그래머 입장에서 구현이 가장 어려운 것이 아닌가 싶다. 왜냐하면 코드를 랜덤하게 결정하는 것도 일이지만 코드를 이미지에 표현하는 것과 프로그램(자동 스팸 댓글)이 읽기 어렵도록 코드들을 랜덤하게 늘어뜨린 부분 등등.. 아무것도 없는 상황에서 하루만에 뚝딱 구현해서 사용하지는 못했을 것이다.
어쨌든간에 이리 어렵게 개발되었어도, UX를 고려한 사용자 입장에서 이 방법은 매우 bad한 방법이다. 사용자들은 이런 것들을 매번 귀찮게 입력하고 싶지 않기 때문이다.

2. form tag와 javascript function을 통한 스팸방지

 이 방법은 내가 2008년에 designe:;note를 개발하면서 생각해낸 아이디어다. 그때도 스팸댓글 때문에 고생 좀 했더랬다. 하지만 막는 방법은 아주 간단했다. 그저 자동 스팸 댓글러들의 실제 패턴만 알면 위의 첫번째 방법같이 복잡한 방법이 아니더라도 아주 쉽게 간단히 막을 수 있다. 아래의 코드를 보자.

HTML code
[html]
<form method=’post’ action=’#’>
<input type=’text’ name=’uname’ id=’uname’></input>
<input type=’text’ name=’comment’ id=’comment’></input>
<input type=’hidden’ name=’spancheck’ id=’spamcheck’ value=’0′></input>
<input type=’button’ onclick=’sendComment()’></input>
</form>
[/html]

Javascript code
[javascript]
function sendComment() {
document.form.spamcheck.value = 1;
document.form.submit();
}
[/javascript]

위의 코드는 매우 간단하다. 그저 댓글 입력 버튼을 눌렀을 때, 위의 간단한 자바스크립트 함수 sendComment()를 호출한다. 그리고 기본값이었던 spamcheck의 값을 0에서 1로 바꿔준다. 그것이 끝이다. 남은 것은 action 어트리뷰트에 있는 php의 코드에서 $_POST[‘spamcheck’] 값이 0인지 1인지 구분하고, 0일 경우 댓글이 남겨지지 않게 하고, 프로그램에게 한방 먹일 멋진 코드를 하나 선사하는 것이다. 리턴 페이지로 javascript로 구현한 다음과 같은 코드를 말이다. ^^
[javascript]
function HelloSpamRobot()
{
while(true)
{
alert(“I’ll kill you!!!!!!!!”);
}
}
[/javascript]

아마도 이 프로그램이 돌아가는 컴퓨터의 소유자는 꽤나 고생할 것이다. 위와 같이 생각지도 못한 상황이 발생했으니 말이다. 아무튼 위의 방식은 거의 대부분의 자동 스팸 댓글을 막을 수 있다. 그 이유는 바로 스팸 댓글의 원리 자체가 SQL injection 또는 자동 submit 을 통해서 데이터베이스에 기록하게 되는데, 간단히 위처럼 javascript function과 input hidden을 활용하여 저지할 수 있는 것이다. 간단하지만 아주 강력하게 막을 수 있고, 보복까지 할 수 있으니 얼마나 좋은가? 🙂

3. 페이스북 Comment 쓰기

페이스북은.. 참 막강하다. -_ – 로그인 정보가 쿠키에 남아서 페이스북 아이디를 가지고 있고, 로그인이 되어있는 상황이라면 어디서든 빠르고 쉽게 댓글을 남길 수 있다. 사용자 정보를 입력할 필요도 없고, 간단히 자신이 남기고 싶은 메세지만 남기면 되니, 사실 가장 편한 방법이 아닌가 싶다.

간만에 포스팅하면서 재미를 느꼈던 것 같다. 현재 내 블로그는 워드프레스 자체 Comment를 아예 없애버렸다. 그냥 facebook Comment를 가져다 쓰는 것이 사용자에겐 가장 쉽고, 간단히 코멘트만 남길 수 있으니 말이다. 하여간 페이스북은 대단하다 정말..