1

주제: 스팸 방지를 위한 방법

여기에다가 쓰는 것이 맞는지 잘 모르겠지만 최근 태터툴즈를 비롯한 여러 블로그들에서 스팸 방지를 위한 방법을 찾기위해 많은 노력을 하고 있는 것 같아 그 전에 생각해두었던 내용을 간단하게 정리해서 올렸습니다. 이미 알고 계시는 내용인지는 잘 모르겠습니다만은 조그맣게나마 도움이 되었으면 좋겠습니다.

스팸방지를 위한 방법

이 내용을 바탕으로 패치를 작성해볼 생각을 하기도 했지만 이에 대한 논의가 더 필요할 것 같기도 하고 플러긴과 같은 것을 만들기에는 벅차서 이렇게 정리만 해서 올립니다...

욱성군 (2006-06-24 21:07:25)에 의해 마지막으로 수정

2

답글: 스팸 방지를 위한 방법

여러 대책을 테스트해본 분들의 의견에 따르면 요즘 봇들은 IE를 embed하여 DOM 소스를 직접 분석하는 방식을 쓰는 경우도 있는 것 같습니다.
Ajax의 경우는 페이지 로딩이 되자마자 이루어지지는 않기 때문에 타이밍 문제로 봇이 인식하지 못할 가능성도 있으나, 역시 이또한 기술적으로 봇 입장에서 해결 가능한 문제입니다. 또한 코멘트를 Ajax에 의존하는 것은 접근성을 떨어뜨린다는 면도 있겠죠.

가장 나은 방법은 EAS와 같은 collective spam filter를 사용하는 방법이겠으나, 차선책으로 신현석 님이 제시하신 것과 같은 아이디어를 써볼 수는 있겠습니다.

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

3

답글: 스팸 방지를 위한 방법

아 요즘에는 봇이 DOM을 분석하기도 하는군요 긁적orz
제 방법과 비슷하게 Ajax를 사용하지 않고 인증 코드를 준 다음 사용자의 작성시간을 생각한 방법도 있군요.
Crow님의 방법
이 역시 봇이 시간을 의도적으로 지연시킨다면 별 소용이 없을 것 같지만 하나의 방법이 아닌가 싶습니다.

4

답글: 스팸 방지를 위한 방법

가장 효과적인 방법은 그림에 글씨를 출력해 적는 방법(MT에 이걸 적용해서 쓰신 김중태님 말로는 스팸 코멘트가 1차래도 없었다네요)이라 생각합니다. 물론 똑똑한 스팸봇은 인식을 하겠지만, 아직 그런게 활기치고 다니지는 않는듯 합니다.
다만, 일반 방문자도 코멘트를 남길때 문자를 받아 적어야 하는 불편함은 어쩔 수 없죠.

트랙백의 경우도 트랙백 주소를 표시할때 주소를 분리해서 표시하면 봇이 수집을 못하겠지만,
(예 http://blog.ofjwc.com + /tb/123) 이도 사용자 입장에선 불편하죠.
뭐 JS로 어떻게 하면 분리된 문자열을 합쳐서 클릭시 복사되도록 할 수도 있겠지만요...

5

답글: 스팸 방지를 위한 방법

스팸이 최초로 인식하는 파일명을 랜덤으로 계속 바꾸게 만들어 주고, 그와 동시에 시스템에서 이 파일을 인식하는 파일명도 동시에 계속 바꾸게 해 줘서 봇이 인식하지 못하게 하면 안 될까요?
물론 이는 서버의 hdd에 직접 저장하는 것이 아니라 램 상에서만 구현되는...(정확한 표현을 하질 못하겠는데....) 가상의 파일을.....

따뜻한 5월의 햇살 속에 한가로이 잠든 작디작은 선인장처럼...
내일을 향한 꽃봉오리 몇 개를 올려본다.

6

답글: 스팸 방지를 위한 방법

JWC 작성:

가장 효과적인 방법은 그림에 글씨를 출력해 적는 방법(MT에 이걸 적용해서 쓰신 김중태님 말로는 스팸 코멘트가 1차래도 없었다네요)이라 생각합니다. 물론 똑똑한 스팸봇은 인식을 하겠지만, 아직 그런게 활기치고 다니지는 않는듯 합니다.
다만, 일반 방문자도 코멘트를 남길때 문자를 받아 적어야 하는 불편함은 어쩔 수 없죠.

트랙백의 경우도 트랙백 주소를 표시할때 주소를 분리해서 표시하면 봇이 수집을 못하겠지만,
(예 http://blog.ofjwc.com + /tb/123) 이도 사용자 입장에선 불편하죠.
뭐 JS로 어떻게 하면 분리된 문자열을 합쳐서 클릭시 복사되도록 할 수도 있겠지만요...

글씨 출력하는것도 어느정도 뚤릴 가능성이 있으니 숫자 + 숫자 = ? 이런 형식도 좋을 거 같아요.
귀찮을 수도 있지만 재미도 있을거 같거든요. 전 이런 구조로 된 스팸방지를 본적이 있는데 상당히 잼있었거든요.
(ex: 30+3 에 대해 물어보고 대답은 33이라고 하는...)

하늘은 스스로 삽질하는 자를 삽으로 팬다

7

답글: 스팸 방지를 위한 방법

작은인장 작성:

스팸이 최초로 인식하는 파일명을 랜덤으로 계속 바꾸게 만들어 주고, 그와 동시에 시스템에서 이 파일을 인식하는 파일명도 동시에 계속 바꾸게 해 줘서 봇이 인식하지 못하게 하면 안 될까요?
물론 이는 서버의 hdd에 직접 저장하는 것이 아니라 램 상에서만 구현되는...(정확한 표현을 하질 못하겠는데....) 가상의 파일을.....

좋은 생각 같습니다,
트랙백 주소가 기본적으로 랜덤으로 나타나고 그 랜덤으로 생성된 트랙백 주소는 특정시간이 지나면 그 트랙백주소는 유효한 트랙백주소가 아닌게 되는거죠?
(예를 들면 랜덤으로 트랙백주소가 나타나면 그 주소는 1분 지속되고 1분 이상 지나면 트랙백을 보내지 못합니다. 다시 불러들여 새로 값을 부여받아야하죠.)

나니 (2006-06-25 12:59:07)에 의해 마지막으로 수정

하늘은 스스로 삽질하는 자를 삽으로 팬다

8

답글: 스팸 방지를 위한 방법

JWC 작성:

가장 효과적인 방법은 그림에 글씨를 출력해 적는 방법(MT에 이걸 적용해서 쓰신 김중태님 말로는 스팸 코멘트가 1차래도 없었다네요)이라 생각합니다. 물론 똑똑한 스팸봇은 인식을 하겠지만, 아직 그런게 활기치고 다니지는 않는듯 합니다.
다만, 일반 방문자도 코멘트를 남길때 문자를 받아 적어야 하는 불편함은 어쩔 수 없죠.

죄송합니다만, 코드 자체에 접근성을 향상시키고 있는 시점에서 그 방법은 도입하기가 조금 꺼려집니다. 그렇게 하면야 스팸은 확실히 차단될지 몰라도 시각장애인 역시 확실히 차단되니까요. 되도록이면 시각장애인을 비롯한 각종 다른 상황에 놓인 다른 유저들이 사용할 수 있도록 하는 것이 접근성 향상의 목적입니다. 물론, 어느 유저가 플러그인 형태로 제작해서 사용하는 것은 전혀 터치할 의도는 없습니다. TnF나 TnC에서 공식적으로 그런 방식을 도입하는 것은 보류하는 것이 좋을 것 같다는 것이죠.

나니님, 제 말 오해하지 마시고... 회사의 기밀을 적으시면 곤란한 상황에 처하실 수 있습니다. 지적재산권이라는 것은 주로 아이디어에서 비롯되는 것이 많기 때문에 아이디어가 누출되면 생명력을 잃을 수 있습니다. 그 부분은 살짝 삭제하시는 편이 좋을 것 같네요.(이미 볼 사람은 다 봤겠지만...:( 삭제하실 때를 대비해 본문인용은 안 했습니다.)

graphittie (2006-06-25 11:32:54)에 의해 마지막으로 수정

9

답글: 스팸 방지를 위한 방법

graphittie 작성:
JWC 작성:

가장 효과적인 방법은 그림에 글씨를 출력해 적는 방법(MT에 이걸 적용해서 쓰신 김중태님 말로는 스팸 코멘트가 1차래도 없었다네요)이라 생각합니다. 물론 똑똑한 스팸봇은 인식을 하겠지만, 아직 그런게 활기치고 다니지는 않는듯 합니다.
다만, 일반 방문자도 코멘트를 남길때 문자를 받아 적어야 하는 불편함은 어쩔 수 없죠.

죄송합니다만, 코드 자체에 접근성을 향상시키고 있는 시점에서 그 방법은 도입하기가 조금 꺼려집니다. 그렇게 하면야 스팸은 확실히 차단될지 몰라도 시각장애인 역시 확실히 차단되니까요. 되도록이면 시각장애인을 비롯한 각종 다른 상황에 놓인 다른 유저들이 사용할 수 있도록 하는 것이 접근성 향상의 목적입니다. 물론, 어느 유저가 플러그인 형태로 제작해서 사용하는 것은 전혀 터치할 의도는 없습니다. TnF나 TnC에서 공식적으로 그런 방식을 도입하는 것은 보류하는 것이 좋을 것 같다는 것이죠.

나니님, 제 말 오해하지 마시고... 회사의 기밀을 적으시면 곤란한 상황에 처하실 수 있습니다. 지적재산권이라는 것은 주로 아이디어에서 비롯되는 것이 많기 때문에 아이디어가 누출되면 생명력을 잃을 수 있습니다. 그 부분은 살짝 삭제하시는 편이 좋을 것 같네요.(이미 볼 사람은 다 봤겠지만...:( 삭제하실 때를 대비해 본문인용은 안 했습니다.)

핫핫. 제가 조금 잘못 생각했네요. wink
지적 감사합니다.

아참, 약간만 수정했는데 윗분의 글에 대해 조금 덧붙이는 내용이라 삭제하지는 않았습니다.

나니 (2006-06-25 13:00:39)에 의해 마지막으로 수정

하늘은 스스로 삽질하는 자를 삽으로 팬다

10

답글: 스팸 방지를 위한 방법

나니 작성:

좋은 생각 같습니다,
트랙백 주소가 기본적으로 랜덤으로 나타나고 그 랜덤으로 생성된 트랙백 주소는 특정시간이 지나면 그 트랙백주소는 유효한 트랙백주소가 아닌게 되는거죠?
(예를 들면 랜덤으로 트랙백주소가 나타나면 그 주소는 1분 지속되고 1분 이상 지나면 트랙백을 보내지 못합니다. 다시 불러들여 새로 값을 부여받아야하죠.)

ㅎㅎ 요새 스패머 프로그램들의 경우 IE 자체를 embedding하는 것으로 보이기 때문에 그 방식은 순식간에 깨집니다.

사람 들어오듯이 IE열고 주소 쳐서 들어와서 트랙백 주소 읽은 후 붙이고 confirm하기 때문에 지금까지의 대부분의 방식들은 의미가 없어지고 있습니다. 랜덤으로 트랙백 주소가 나타나는 경우도 마찬가지죠.

한 3개월 이전이라면 의미가 있었겠지만, 이제는 저 방식도 의미가 없답니다^^

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

11

답글: 스팸 방지를 위한 방법

inureyes 작성:
나니 작성:

좋은 생각 같습니다,
트랙백 주소가 기본적으로 랜덤으로 나타나고 그 랜덤으로 생성된 트랙백 주소는 특정시간이 지나면 그 트랙백주소는 유효한 트랙백주소가 아닌게 되는거죠?
(예를 들면 랜덤으로 트랙백주소가 나타나면 그 주소는 1분 지속되고 1분 이상 지나면 트랙백을 보내지 못합니다. 다시 불러들여 새로 값을 부여받아야하죠.)

ㅎㅎ 요새 스패머 프로그램들의 경우 IE 자체를 embedding하는 것으로 보이기 때문에 그 방식은 순식간에 깨집니다.

사람 들어오듯이 IE열고 주소 쳐서 들어와서 트랙백 주소 읽은 후 붙이고 confirm하기 때문에 지금까지의 대부분의 방식들은 의미가 없어지고 있습니다. 랜덤으로 트랙백 주소가 나타나는 경우도 마찬가지죠.

한 3개월 이전이라면 의미가 있었겠지만, 이제는 저 방식도 의미가 없답니다^^

저런... 정말 인공지능화 되어가고 있는 무서운 인간형 스팸봇들이네요...;;;

하늘은 스스로 삽질하는 자를 삽으로 팬다

12

답글: 스팸 방지를 위한 방법

스팸봇들은 날이 갈수록 무시무시해집니다. 사실상 기계급의 능력을 가진 인간이라고 생각해야 합니다.
때문에 클라이언트 레벨에서의 보조를 받는 방법은 접근성을 떨어뜨리는 것은 물론이고, 효과도 심하게 낮습니다.
DB입력 단계에서 걸러낼 수 있는 알짜 "알고리즘"을 찾아내는게 중요합니다.
잡기로 장난질 부려봐야 별 의미없는 세상..

13

답글: 스팸 방지를 위한 방법

최근 개편한 kldp에서 사용하고 있는 drupal 이라는 CMS툴이 기존의 phpbb에서 있었던 스팸봇을 100% 막고 있습니다. (익명으로도 글을 쓸 수 있는데도 말이죠) Akismet 등을 쓰는 것 같은데 한번 참고해볼만 한것 같습니다. (음... 애플이 해커들을 위해 시를 쓴것처럼 태터도 이제 시를 쓸 때가 된건가요?)

욱성군 (2006-06-26 00:34:06)에 의해 마지막으로 수정

14

답글: 스팸 방지를 위한 방법

laziel 작성:

스팸봇들은 날이 갈수록 무시무시해집니다. 사실상 기계급의 능력을 가진 인간이라고 생각해야 합니다.
때문에 클라이언트 레벨에서의 보조를 받는 방법은 접근성을 떨어뜨리는 것은 물론이고, 효과도 심하게 낮습니다.
DB입력 단계에서 걸러낼 수 있는 알짜 "알고리즘"을 찾아내는게 중요합니다.
잡기로 장난질 부려봐야 별 의미없는 세상..

역시 최고의 방법은 감정을 가진 필터를 만드는 것이 아닐까 합니다.

읽어보고 "짱나!" 해서 지우는 프로그램을...

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

15

답글: 스팸 방지를 위한 방법

inureyes 작성:

읽어보고 "짱나!" 해서 지우는 프로그램을...

성격 잘 구현해야겠는데요. 신경질적인 성격이면 아주 멀쩡한 것까지 싹 지워버리는 만행을 벌일지도...

16

답글: 스팸 방지를 위한 방법

inureyes 작성:

읽어보고 "짱나!" 해서 지우는 프로그램을...

으음.. 커플 염장 데이터도 반드시 걸러지겠군요[...]

17

답글: 스팸 방지를 위한 방법

laziel 작성:
inureyes 작성:

읽어보고 "짱나!" 해서 지우는 프로그램을...

으음.. 커플 염장 데이터도 반드시 걸러지겠군요[...]

혹,,,,  스펨과 사랑하게 된다면,,,   ;;;;

<!--[if IE]>
<p>잘못 실행하신 브라우저 이거나 국번이 없는 브라우저 이오니, 다시한번 확인하시고 사용하시기 바랍니다.
유해브 컬드 롱 브라우저 오어 노 브라우저.  플리즈 트라이 어게인 땡큐</p>
<! [endif] -->

18

답글: 스팸 방지를 위한 방법

graphittie 작성:

성격 잘 구현해야겠는데요. 신경질적인 성격이면 아주 멀쩡한 것까지 싹 지워버리는 만행을 벌일지도...

괜찮습니다. 이유는 아래와 같습니다.

graphittie 작성:

으음.. 커플 염장 데이터도 반드시 걸러지겠군요[...]

프로그램 두 개 돌려서 커플 만들어주면 됩니다.
성격도 좋아지고 염장데이터도 안 걸러 집니다.

...단 스팸을 안 거르고 태업하는 사태가 벌어질지도;;;

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'