XE 공식 자료실

제작자
AJKJ
등록일
2014-05-11
다운로드 수
64
링크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,717
체험하기

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

상세 설명

버그로 임시 수정중 입니다.

- 주요사항 -
dyform_nospam 스팸방지 애드온입니다.

현재 버젼에서는 스팸봇에 의한 회원가입 방지만이 가능하며, 글쓰기/댓글쓰기 스팸봇 방지는 차후 지원 예정입니다.

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

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

따라서 다음과 같이 작동합니다.
1. 페이지 로딩과 함께 페이지에 존재하는 모든 form에 대하여 다음과 같은 input 2개를 모두 동적으로 JS를 이용하여 삽입합니다.
<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만 작동하면 이론적으로는 사용자의 불편없이 추가적인 스팸필터링이 가능합니다.
현재 제가 운영하는 사이트의 경우 captcha를 사용하지 않음에도 불구하고, 애드온 설치후 스팸봇이 전혀 가입하지 못하고 있습니다.

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

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

포럼 0

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