포럼

간단한 스팸방지(회원가입/글쓰기/댓글쓰기 방지) 애드온을 만들어 보았습니다.


애드온의 원리와 스팸차단의 전제 조건은 다음과 같습니다.

- 스팸봇은 javascript를 해석하고, 실행하지 못한다.(즉 DOM을 만들고 해석하지 못한다)

- 스팸봇은 단순히 HTTP 패킷을 만들어서 서버로 보내는것 뿐이다.

- 스팸봇은 CSS를 해석하지 못한다.


따라서 다음과 같이 작동합니다.

1. 페이지 로딩과 함께 페이지에 존재하는 모든 form에 대하여 다음과 같은 input 2개를 모두 동적으로 삽입합니다.

<input type="hidden" value="any_string" name="any_name1"/>

<input type="text" value="" name="any_name2" style="visibility:hidden ; position:absolute"/>

이렇게 되면 폼을 보낼때 위 2개의 값도 같이 포함되어 보내지겠지요.


2. 애드온에서 module이 실행되기 전에 우선적으로 저 위의 2가지 값을 검사합니다.

2-1) any_name1에 정상적으로 값(any_string)이 들어갔나 체크합니다.

(스팸봇은 자바스크립트 실행을 못하기에 아마 저 input 자체가 같이 들어오지 않았을 겁니다. 값이 변조되거나 비어있는채로 왔다면 행동을 차단시킵니다.)


2-2) any_name2에 임의에 값이 삽입되지 않았나 체크합니다.

(스팸봇은 입력할 수 있는 모든 input값(type=text)을 채우려 할것입니다. 위의 경우에서도 any_name2에도 어떠한 값을 채우려 하겠지요. 그러나 any_name2는 CSS 때문에 보이지 않기에 정상적인 사용자라면 입력을 하지 못하고 그냥 폼을 보내야겠지요. 한편 스팸봇은 CSS를 해석하지 못하기에, any_name2에도 임의의 값을 채울것이고, 만약 임의의 값이 들어가 있다면(비어있지 않다면) 글쓰기를 차단시킵니다.)


이 애드온의 장점은 다음과 같습니다.

1. Javascript만 작동하면 이론적으로는 사용자의 불편없이 추가적인 스팸필터링이 가능합니다.


이 애드온의 경우 단점/문제점이 몇개 있습니다

1. 비 Javascript 환경에서는 글쓰기/회원가입/댓글 작성 자체가 불가

폼을 동적으로 삽입하고, 이것을 체크하여 스팸봇을 걸러내는데, 비 Javascript 환경을 스팸봇으로 인식합니다. 그래서 해당 환경에서는 글쓰기/회원가입/댓글 쓰기 자체가 불가능합니다. 그런데 뭐 이건 캡차도 마찬가지인 문제이지요.


2. 사용하시는 게시판에 따라서 글쓰기/댓글쓰기가 차단 여부가 조금 복잡합니다.

회원가입은 확실히 애드온이 적용이 되는데, 사용하시는 게시판 스킨에 따라서, 글쓰기, 댓글쓰기 스팸차단은 애매하게 됩니다. 정확히 설명하면, jQuery를 통한 동적 input form 삽입이 안되는 경우가 있는것 같습니다.


현재까지 확인된것은 다음과 같습니다.


- XE모바일 기본 게시판 스킨에서는 댓글, 게시글이 모두 정상적으로 스팸차단이 가능합니다.


- 스케치북 게시판(RC15) 기준, PC에서 비정상적인 글을 쓰는것은 정상적으로 차단이 되나, 댓글은 차단이 되지 않습니다. (댓글에서는 동적으로 form 생성 자체가 되지 않습니다. 자바스크립트가 꼬여서 그런듯 합니다.)

(이 경우 댓글은 스팸필터 적용을 하지 않고, 글만 스팸필터 적용이 가능하도록 바꾸는것이 소스를 수정하셔야 합니다. 그렇지 않으면, 댓글 작성 자체가 차단됩니다.)



라이센스는 LGPLv2이며 자료실에 올리기에는 완성도가 많이 떨어지고 하여, 여기에 간단히 올려봅니다.

현재로서는 사이트별로 디버깅 하시면서 사용하셔야 할것 같습니다.

차후에 애드온이 안정화되고, 스케치북게시판도 안정화 되면 정식으로 자료실에 업로드 해보겠습니다.

태그 연관 글
  1. [2014/08/19] 묻고답하기 해킹인가요 왜 자꾸 회원가입수가 늘어나요. by jack. *2
  2. [2014/06/25] 묻고답하기 회원가입시 "스팸입니다" by user007 *3
  3. [2014/06/06] 묻고답하기 제로보드 해외 해킹 문제 by 돌돌이433 *3
  4. [2014/05/31] 포럼 XE 외국 호스팅 설치시 스팸 도배 엄청나네요 by istar *13
  5. [2014/05/26] 묻고답하기 외국 스팸....어떻게 처리하시나요? by PEANUTSOUL *11
글쓴이 제목 최종 글
애니즌 image_lazyload 애드온 수정기. [21] 2014.05.13 by 애니즌
mAKEkr 몰랐는데.. 스킨에서도 그냥 일반 PHP파일을 불러올 수 있네요?? [4] 2014.05.13 by 독도2005
orangehome XE 비지니스 라이센스 정책 [6] 2014.05.13 by ibin
AJKJ 간단한 스팸방지 애드온 아이디어 및 배포 [14] file 2014.05.13 by prologos
가르송 누리고!!! 디자인 센터가 만들어지면 참 좋을듯하네요 ^^ [3] 2014.05.12 by 여우별다솜
KANTSOFT 프로그래머에게 필요한 5가지 덕목 [4] 2014.05.12 by KrteamENT
Novelic 게시판 모듈인데 wiki 모듈의 act가 쓰이네요 [3] 2014.11.14 by teguh100
이즈야 트리거 개념 적용하는 거 재미있네요.  
모얼더 스팸 테러의 목적이 뭘까요? [8] 2014.05.11 by Luatic™
foret 개인 사이트 용량으로 고민하시는 분들.. ㅎㅎ [6] 2014.05.11 by foret
EnterTM 디시인사이드와 같은 차단기능을 도입해야 되지 않을까 생각이 되네요. [3] 2014.05.10 by qwms
XE힘들당휴 현재 소셜XE는 mysqli DB환경을 사용할 시 문제가 있습니다. [13] file 2014.05.10 by 시기
도라미 공홈 메뉴가 영어로 바뀌었네요. [22] 2014.05.10 by 도라미
jango848 이미지 파일 업로드하면 깨지는데 왜그럴까요??ㅠㅠ [1] 2014.05.10 by teguh100
푸하라 캡챠 지데루 뚤렸네요.... [21] 2014.05.10 by 독도2005
푸하라 캡차가 뚤린것이 아니라 보안에 구멍이 생긴듯 하네요... [13] 2014.05.10 by GG
pezex 스팸 공격에 대해서 [2] 2014.05.10 by GG
Omega3 XE 공홈에 안 들어온지 약 1달이 되었는데... [2] 2014.05.10 by Omega3
큰돌♡ 리퍼러 베타 업데이트... [4] file 2014.05.09 by 키스투엑스이
oscarmike CPC 수익금 지급과.. 개인정보??? [4] 2014.05.09 by oscarmike