포럼

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


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

- 스팸봇은 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
글쓴이 제목 최종 글
키다리군 1.5.1 버전 외부페이지, 페이지 기능 좋아진 건가요? 엉망이된 건가요? [4] 2011.12.15 by Te0
ForHanbi 자유게시판 사용자 포럼 댓글허용 수정좀 해 주세요. [1] 2011.12.15 by 정찬명
호두우유 혹시 크롬에서만 로그인 문제 겪으시는분 안계신가요?  
XE 공식사이트 로그인 방식이 "이메일 + 비밀번호"로 변경되었습니다. [2] 2011.12.14 by 루큐모닷컴
꿈계 1.5.X에서 회원가입 시 이메일 사용/비밀번호 찾기 기능 없앤분 계신가요? [8] 2011.12.14 by 권태성 
도라란 파일 업로드 부분이 input type=fille 로 나오는 것이 어려운 부분인가요? [3] 2011.12.14 by 도라란
도라란 첨부파일 용량제한이 소수점은 사용하지 못하게 바뀌었나요?  
도라란 스팸 공동대응 모듈이 방명록에는 적용되지 않는군요.  
상현작가 접속한 도메인마다 다른 페이지를 보여줄 수 있나요? [3] 2011.12.14 by Garon
sejin7940 확장변수값 크기 비교할때.... [1] 2011.12.14 by criuce
달팽이355 관리자 페이지가 이렇게 어려워서야,,,, [5] 2011.12.14 by Gracia
가브리엘조 사이트 내 현재 접속자/비로그인 접속자/로그인 접속자 소스 변경해주실분~  
스맛 XE fabicon 이미지 수정 필요하다고 봅니다. [1] 2011.12.14 by ForHanbi
레이딘 어떤 템플릿 문법을 쓰시나요? [2] 2011.12.14 by 우진홈
PD유스 지금은 사라진 텍스타일 소개 동영상 [1] 2011.12.13 by 모조키
푸하라 서브쿼리 지원이라고 되어있는데 어떻게 사용하는건가요????  
모조키 순전히 궁금해서 그러는데요.. 회원가입 왜 이렇게 만들었을까요?? [3] 2011.12.13 by 푸하라
銀童 다음 에디터7 XE 적용(작업중) [38] 2011.12.13 by 앙까?
서비여 여기 xe공홈 게시판에 아직도 문제가 있네요 [3] file 2011.12.13 by 정찬명
가브리엘조 가입폼....언제쯤이면... [3] file 2011.12.12 by ToFinder