AnimeClub - zbXE... : zeroboard XE

XpressEngine에 관련 내용에 대해서 이야기 합니다.

icon Stop Forum Spam XE v0.3.1

조회 수:5729 등록일:2010.08.28 12:33:51 (*.126.53.69)

logo.pngStop Forum Spam XE

해당 모듈은 http://www.stopforumspam.com/ 라는 스팸 ip, 스팸 email, 스펨 username을 사용자가 실시간으로 등록 갱신하며, 이를 API 서비스를 이용해서 대상 종류가 스팸인지 아닌지를 판별해 주는 스팸 대응 서비스를 이용하여 XE에 스팸 ip가 접근하지 못하도록 차단해주는 모듈 입니다.


Ver 0.3.1 (Beta)
  • 2010.08.28
    • Shell 처리를 ajax용 함수로 처리되었던 문제 수정
    • AJAX 처리용 javascript의 로딩 조건 중 json 비교내용 오류 수정
    • lastseen 날짜 표기 오류 수정


설치요소

  • Stop Forum Spam XE (모듈)
  • Stop Forum SPam XE Addon (애드온)


설치조건

해당 모듈은 모듈, 애드온 모두 각개의 운영이 가능합니다. 하지만 두개를 같이 사용했을시에 좀 더 나은 성능을 나타냅니다.

해당 모듈은 페이지 로딩 성능을 위해 Shell Background(shell_exec)를 이용하도록 되어있기 때문에 만약 웹호스팅사가 저 기능을 막아놨다면 사용이 불가능합니다.(대신 애드온으로만 사용가능)


설치방법

  1. 첨부파일을 다운로드해서 압축을 풀면 stopforumspam 이라는 모듈이 나온다(폴더생성으로 풀지말고 바로 푸세요)
  2. FTP나 설치된 XE의 modules 폴더안에 해당 폴더를 복사한다.
  3. 해당 폴더안에 config라는 폴더의 퍼미션을 707 or 777로 변경한다.(modules/stopforumspam/config/ 경로)
  4. XE 관리자 페이지에서 모듈 설치를 한 후 좌측 부가기능설정 메뉴에 있습니다.
  5. XE 관리자 페이지에서 애드온 설정에 가서 Stop Forum Spam Addon을 활성화한다.(세부 속성 설정은 4번만 하면 됩니다.)


설정방법

deafult.jpg

  • 스펨종류

ip, email, username 3가지로 분류 됩니다. ip는 글 등록부터 모든 접근에 해당하며 email과 username은 글등록 시 사용하는 email과 이름을 검사할때 사용합니다.(현재 초기버전이라 ip밖에 안됩니다.)

  • 기록종류

API를 통해 해당 ip, email, username이 스팸이라면 yes 아니라면 no를 보내는데 이 정보를 기록할지 여부입니다.
스팸을 기록시켜놓는 이유는 위 서비스 사이트를 접근하기 전에 한번 접근했었던 기록을 가지고 이를 우선으로 판단합니다.
기록은 Stop Forum Spam에서 매번 갱신되는지라 어제는 안전한 정보가 오늘 스팸이 될 수 있기 때문입니다.
비 스팸의 경우는 차후 이것이 스팸이라고 개인 판단이 들면 API Key를 통하여 Stop Forum Spam에 스팸 등록을 직접 할 수 있습니다.

  • 기록 방식

Shell 백그라운드가 지원되지 않는 사용자를 위해서 AJAX를 이용해서 처리하는 방법을 추가했습니다.
다만 AJAX로 할경우 자바스크립트가 거부한채 접근하는 경우나 스팸IP가 정상IP로 되었을 경우의 확인이 어렵습니다.

  • 기록 간격(일)

매번 요청시 백그라운드가 수행되는 불필요한 사항으로 인해 간격을 정하면 간격내에 반복 요청자에 대해서는 백그라운드를 수행하지 않습니다.

  • Header 선택

접근 거부인지, 대상을 찾지 못하는 건지 403, 404로 사용하게 했습니다. 아무거나 하셔도 무방합니다.

  • 메시지

Header에 따라 간단하게 밑에 한줄 적어주시는 용도 입니다.

api.jpg

  • API Key (예정)

http://www.stopforumspam.com/signup 이곳을 통해 Key를 발급 받으면 스팸이 아닌, 혹은 스팸이지만 중복으로 스팸 등록을 할 수 있습니다. Stop Forum Spam은 사용자가 직접 참여해서 관리할 수 있도록 되어있습니다.

banned.jpg

  • 지정시간(분)

지정시간 동안에 요청수를 확인하여 처리합니다. 지정시간이 지나면 요청된 수는 초기화 됩니다.

  • 접속횟수

지정시간동안에 접속하는 수 입니다. 해당 횟수를 넘어가게되면 접속을 차단시킵니다.

  • act접속횟수

접속횟수와 별도로 한곳에서 계속적인 요청이 있을 경우 접속을 차단시킵니다. (접속횟수보다 적은 수를 넣어주세요.)

  • 차단시간(분)

접속횟수이상 접근할 경우 얼마간 차단할지 정합니다. (index를 이용하게되면 차단에 대한 성능을 올릴 수 있습니다. 밑에 설명)


stopforumspam.index.php를 이용하면 차단 성능을 올릴 수 있습니다.

스팸일 경우나 연속 접근으로 차단 된 경우 차단되었음에도 연속적으로 접속시도를 하기 때문에 서버의 자원을 소비할 수 밖에 없습니다.
xe/index.php에 아래의 코드를 삽입하게 되면 XE처리가 수행되기전에 차단을 할 수 있습니다.
차단 운영방법 또한 차단되었음에도 연속으로 10건 접근하면 차단 시간을 두배씩 증가 시키도록 하였습니다.
(단, 쿠키를 이용한것이기 때문에 상대방 스팸.로봇이 쿠키를 사용하지 않는 것이라면 효과는 없습니다.)

     /**
     * @brief 기본적인 상수 선언,  웹에서 직접 호출되는 것을 막기 위해 체크하는 상수 선언
     **/
    define('__ZBXE__', true);

    /**
     * @brief Refresh, 트래픽 유발 공격 대응
     **/
    define("_SFS_PATH_", str_replace("index.php", "", str_replace("\\", "/", __FILE__)));
    require_once(_SFS_PATH_."modules/stopforumspam/stopforumspam.index.php");

    /**
     * @brief 필요한 설정 파일들을 include
     **/
    require('./config/config.inc.php');

@brief Refresh, 트래픽 유발 공격 대응 주석아래의 두줄을 index.php에 삽입하세요.


- API 요청수를 대폭 줄였습니다. stopforumspam.net에서 한국(특히 이 모듈에서)에서 100,000건의 요청이 들어와서 몇개를 블럭시킨 상태입니다. API 요청수를 대폭줄여서 상호 부담이 가지 않도록 해서 블럭걸리신 분들도 해제할 수 있도록 하겠습니다.

- AJAX를 이용한 처리 방법을 추가하였습니다. 기존에 shell이 동작하지 않던 호스팅에서도 사용이 가능하게 되었습니다.
다만 어디까지나 자바스크립트를 이용한 방법이라 스팸측에서 자바스크립트를 이용하지 않고 접근한다면 수행이 안될 수가 있습니다.

- 검색기능을 넣었습니다.
대상 선택 필요없이 Y, 아이피, 이메일, 유저이름 등 알아서 정보가 맞으면 출력합니다. 특히 Y로 검색해서 스팸이 몇개 걸러냈는지 확인해보시는것도 좋겠네요.

- 간단하게 로그를 볼 수 있게 하였습니다.
ip, email, username을 보실 수 있고요, 스팸인지 아닌지 판단여부와 스팸 등록의 최종 갱신일, 스팸의 심각성(신고 횟수) 등을 보실 수 있으며 이곳에서 바로 직접 선택하여 신고 할 수 있는 기능을 만들려고 합니다. (지금은 간단히 삭제밖에 안되요.)

- 성능을 위해 Shell이 사용되었는데 그 부분으로 인해 첫번째 스팸 대상자는 검사를 하지 않습니다.
처음 스팸 대상자는 검사없이 통과되면서 백그라운드에서 스팸 확인이 되면 스팸 등록을 하게 되고 2번째 접속부터 차단이 됩니다.(실력부족이라 살을 내주고 뼈를 취하고 있습니다. -_-)


주의!

- 백그라운드로 한 이유는 페이지 로딩 시 외부 사이트에서의 응답을 받은 후 완료 하느라 로딩이 걸립니다.(1.5배에서 2배정도로 눈에 띕니다. 이를 극복하고자 shell 기능을 사용했고요. 서버 프로세스 부분이라던가 자원의 메모리 활용등 아직 검사를 하지 못했습니다.

- 제 웹호스팅에서는 Shell 기능이 잘 동작하고 있네요.

- Windows의 경우는 (특히 APM_Setup으로 하시는 분들!) php.ini파일이 APM_Setup폴더에도 있지만 Windows, Winnt 폴더에도 복사해두셔야지 Shell 동작이 가능해지니 이점 참고하세요. (php -q a.php 명령이 먹어야 합니다.)


문의는 http://www.animeclub.net/zbXE나 xpressengine.com에서 쪽지로 받습니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
193 질문-답변 Cooliris PicLens alljoy 2014-02-19 23047
192 질문-답변 운영잔님 질문드립니다. [1] 인터넷짱 2013-06-08 20971
191 질문-답변 아래글에 이어서.. [4] secret 동쪽에태양 2013-02-24 9
190 질문-답변 piclens 을 수정 하고 싶어요 ^^ [2] secret 동쪽에태양 2013-02-17 3
189 질문-답변 로마네스크 재질문 [2] secret 인터넷짱 2013-01-22 5
188 질문-답변 piclens 1.2 요청합니다. [1] alljoy 2013-01-10 14215
187 질문-답변 로마네스크 최근글 질문입니다. [2] file 인터넷짱 2013-01-04 10561
186 질문-답변 아래글 이전글-다음글 관련 확인했는데... 고민하다가 2012-08-13 13629
185 질문-답변 이전글-다음글 관련 문의드립니다. [2] secret 고민하다가 2012-07-31 5
184 질문-답변 이전글 다음글 다시 질문드립니다. [2] 감사합니다. 2012-05-15 13852
183 질문-답변 이전글 다음글 문의드립니다, [2] 감사합니다 2012-05-09 57402
182 질문-답변 로마네스크 최근 문서 출력 위젯 [3] 종구이 2012-03-31 21504
181 질문-답변 json 추출 글 보고 문의 드립니다. [2] cosmos 2012-03-28 25804
180 질문-답변 이전글 다음글 출력에 관한문의 [2] file 봄날2 2012-03-16 22849
179 질문-답변 이전글 다음글 1.1 버튼색상요 [5] 열공365 2012-03-15 15959
178 질문-답변 흠.. 어떻게 하는거죠?? 위젯이 이상해요..; [3] file 2012-02-27 20119
177 질문-답변 이전글 다음글 위젯이요 [2] 열공365 2012-02-20 35960
176 질문-답변 게시판글을 xml로 파싱하는 방법을 부탁드립니다. [2] ibwj 2011-11-24 29380
175 질문-답변 Cooliris PicLens 애드온 1.5..... [3] secret alljoy 2011-10-30 7
174 질문-답변 위젯: 썸네일 생성에 대해서 질문있어요 [2] 아메아메몬 2011-03-25 18646



CATEGORY
ALL [600]
공지 [3]
[551]
사진 [39]
정보 [6]
소식 [2]
정보 [4]

Skin Info

slide_in
 갱신
 
arrow_in