XE 공식 자료실

제작자
AJKJ
등록일
2014-05-16
다운로드 수
115
링크1
www.google.com/recaptcha/mailhide/d?k=017FKN_MgvZO7XBQxhS8_zBA==&c=Hm0EZCM5NsebuaG6AZfMW3mO6pgeWI99oETIJHPu49wAs1RXxJ8GmFZkGj4OC0T4

dynamic form 폼 생성을 통한 스팸방지 애드온입니다.
어려운 CAPTCHA 같은, 사용자의 불편없이 스팸봇에 의한 글/댓글/회원가입을 차단해줍니다.

라이선스
LGPL v2
설치경로
./addons/dyform_no_spam
최초 등록일
2014-05-11
전체 다운로드
4,644
체험하기

쉬운설치로 바로 체험할 수 있습니다

상세 설명

- 주요사항 -
dyform_nospam 스팸방지 애드온입니다.
동적 폼생성 (Dynamic FORM)을 이용하여 스팸을 차단(nospam)하는 애드온 입니다.
ver0.2에서 개선된점은, 회원가입 뿐만이 아니라, 글과 댓글 스팸까지 차단해 줍니다.


ver0.3에 버그가 있어서 ver0.3.1로 수정해서 재업했습니다.
(ver 0.3에서는 크롬에서 일부 레이아웃이 깨지는 문제가 있어서 수정하였고, regualr expression 을 case insensitive 하게 바꾸어서 일부 대소문자로 인한 문제가 생기는 경우를 해결했습니다. )


- 간단 개요 -
dynamic form 생성을 통하여 JS/CSS를 해석하지 못하는 스팸봇의 자동화된 회원가입을 방지해줍니다.
스팸봇에게는 404 error 페이지를 보여줍니다.

- 상세 원리 -
이 애드온의 원리와 스팸차단의 전제 조건과 원리는 다음과 같습니다.
- 스팸봇은 javascript를 해석하고, 실행하지 못한다.(즉 DOM을 만들고 해석하지 못한다)
- 스팸봇은 단순히 HTTP 패킷을 만들어서 서버로 보내는것 뿐이다.
- 스팸봇은 CSS를 해석하지 못한다.

따라 dyform_nospam ver 0.3.1은 다음과 같이 작동합니다.
1. <form> tag중에서 request method가 post인 form에 한해 다음과 같은 <input> form 2개를 javascript를 이용하여 삽입해 줍니다. (단 이 애드온에서는 조금더 약간 꼬아서 삽입합니다.)
<input type="hidden" value="any_string" name="any_name1"/>
<input type="text" value="" name="any_name2" class="any_class"/>

2. name과 value에는 session_id와 연계된 랜덤값을 자동으로 집어넣습니다. 그리고 css를 통하여 any_name2가 보이지 않도록 처리해줍니다. 해당값을 추측하는것은 사실상 불가능합니다.

3. 위와같이 처리하면, 웹브라우저(PC/모바일)에서 글을 작성할때 저 form값 2개도 같이 날라올 것이며, 회원가입/글작성/댓글작성시에 우선적으로 저 2개의 값을 검증하여 스팸봇을 검증합니다.

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

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

- CAPTCHA 그리고 dyform_nospam -
CAPTCHA와 이 애드온을 병행하여 사용하셔도 되고, CAPTCHA 없이 이 애드온만 사용하셔도 됩니다. 사용자가 많지 않은 사이트라면, 이 애드온만 사용하셔도 충분히 스팸이 방어가 되지 않을까 생각합니다.참고로 저의 경우 애드온 설치전에는 매일 매일 스팸봇에 의한 회원가입이 되어서 Captcha로 차단하였으나, 애드온을 설치한 뒤에는 CAPTCHA 가 없어도, 스팸봇이 더이상 가입하지 못하고 있습니다.

- 애드온이 정상적으로 작동하는지 확인하는 방법 -
파이어폭스나 크롬의 개발자 도구를 사용하여 직접 폼을 변조하신후 테스트 해보세요.

- 기타 -
JS와 php를 조금 건드리실줄 아시는분은, 이 애드온을 그대로 사용하기 보다는 적당히(?) 변형하여 사용하는것을 강력히 권장합니다. 아무래도 변형하여 사이트마다 다르게 설치하는것이 스팸방어에 훨씬 더 좋지 않을까 생각합니다.

- 참고 -
스팸봇에 의한 자동화된 스팸만 방어가 가능합니다. 사람이 직접 올리거나 고도의 스팸봇이 올리는 스팸글 까지는 차단이 불가능합니다.

- 라이센스 -
비상업적 목적에 한해 LGPLv2

- 문의처 -

포럼 0

로그인 후 작성할 수 있습니다.