최신글모든게시글모음 인기글(7일간 조회수높은순서)
m-5.jpg
현재접속자

어여 어서 올라오세요

대청마루(자유게시판)

동네 사람들의 정담이 오고가는 대청마루입니다. 무슨 글이든 좋아요.

무분별한 스팸글 등록으로부터 임시해결 팁

홈페이지 최용우............... 조회 수 1479 추천 수 0 2011.10.29 23:11:52
.........

http://www.xpressengine.com/tip/19069968

 

제가 적용해보고 일주일 본 상태인데 1건도 스팸 등록되지 않았습니다.

당연히 스팸 공격이 자주당했던 곳을 비회원 작성으로 풀었는데도 입니다.

준비물

xe/modules/board/board.controller.php

xe/modules/editor/skins/스킨명/editor.html

사용하시는, 스팸 등록이 이루워지는 모듈의 에디터 스킨을 무엇으로 설정하셨는지 확인하신후 해당 폴더로 이동해서 editor.html 파일을 편집기로 엽니다.

제일 최상줄에 아래를 추가합니다.

1.<input type="hidden" name="{base64_encode($request_uri.date('Ymd'))}" value="Y" />


board.controller.php 파일을 편집기로 엽니다.

procBoardInsertDocument(), procBoardInsertComment() 함수를 검색합니다.

01./**
02. * @brief 문서 입력
03. **/
04.function procBoardInsertDocument() {
05.    // 권한 체크
06.    if($this->module_info->module != "board") return new Object(-1, "msg_invalid_request");
07.    if(!$this->grant->write_document) return new Object(-1, 'msg_not_permitted');
08.    $logged_info = Context::get('logged_info');
09.    // 글작성시 필요한 변수를 세팅
10.    $obj = Context::getRequestVars();
11.    /* 스팸 대응 2010.08.05 */
12.    if($obj->{strtolower(base64_encode(Context::getRequestUri().date('Ymd')))} != 'Y') return new Object(-1, 'msg_not_permitted');
13.    $obj->module_srl = $this->module_srl;
14.    if($obj->is_notice!='Y'||!$this->grant->manager) $obj->is_notice = 'N';
01./**
02. * @brief 코멘트 추가
03. **/
04.function procBoardInsertComment() {
05.    // 권한 체크
06.    if(!$this->grant->write_comment) return new Object(-1, 'msg_not_permitted');
07.    $logged_info = Context::get('logged_info');
08.    // 댓글 입력에 필요한 데이터 추출
09.    /* 스팸 대응 2010.08.05 */
10.    $obj = Context::gets('document_srl','comment_srl','parent_srl','content','password','nick_name','member_srl','email_address','homepage','is_secret','notify_message',strtolower(base64_encode(Context::getRequestUri().date('Ymd'))));
11.    $obj->module_srl = $this->module_srl;
12.    /* 스팸 대응 2010.08.05 */
13.    if($obj->{strtolower(base64_encode(Context::getRequestUri().date('Ymd')))} != 'Y') return new Object(-1, 'msg_not_permitted');
14.     
15.    // 원글이 존재하는지 체크
16.    $oDocumentModel = &getModel('document');
17.    $oDocument = $oDocumentModel->getDocument($obj->document_srl);
18.    if(!$oDocument->is Exists()) return new Object(-1,'msg_not_permitted');


스팸 대응이라는 주석문 바로 밑에 것들을 추가 또는 수정하세요.

테스트는 위 내용을 모두 적용 후 캐쉬 재생성 하시고 테스트하려는 모듈로 가셔서 에디터 스킨을 위 내용 추가하지 않은 에디터로 임시로 바꾸세요. 그리고 로그인 상태로 글 등록을 하세요.

권한에 의한 오류 팝업이 나오면 성공입니다.

XML, BlogApi도 권한 오류를 내뿜습니다.

XML, BlogApi에서 본인의 홈페이지로 글을 써야겠다고 하시는 분들은 어쩔 수 없어요.

board.controller.php 수정 어려우신 분들은 첨부파일로 올려두겠습니다.

꼭 미리 기존에 있던 파일을 백업 받으신 후 덮어씌워주세요.

-- 2010.08 16 추가 --
-- 2011.05 09 수정 --

회원 가입 부분에도 추가합니다.

./modules/member/skins/스킨명/signup_form.html

id가 fo_insert_member로 되어있는 <form> 태그 바로 밑에 아래를 추가하세요.

1.<input type="hidden" name="{base64_encode($request_uri.date('Ymd'))}" value="Y" />

./modules/member/member.controller.php

procMemberInsert() 함수안에 스팸 대응이라는 주석문이 있는곳을 추가, 수정하세요.

01./**
02. * @brief 회원 가입
03. **/
04.function procMemberInsert() {
05.    if(Context::getRequestMethod() == "GET") return new Object(-1, "msg_invalid_request");
06.    $oMemberModel = &getModel('member');
07.    $config = $oMemberModel->getMemberConfig();
08.    // before 트리거 호출
09.    $trigger_output = ModuleHandler::triggerCall('member.procMemberInsert', 'before', $config);
10.    if(!$trigger_output->toBool()) return $trigger_output;
11.    // 관리자가 회원가입을 허락하였는지 검사
12.    if($config->enable_join != 'Y') return $this->stop('msg_signup_disabled');
13.    // 약관에 동의하였는지 검사 (약관이 있을 경우만)
14.    if($config->agreement && Context::get('accept_agreement')!='Y') return $this->stop('msg_accept_agreement');
15.    // 필수 정보들을 미리 추출
16.    /* 스펨 대응 2010.08.13 */
17.    $args = Context::gets('user_id','user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing','find_account_question','find_account_answer',strtolower(base64_encode(Context::getRequestUri().date('Ymd'))));
18.    /* 스펨 대응 2010.08.13 */
19.    if($args->{strtolower(base64_encode(Context::getRequestUri().date('Ymd')))} != 'Y') return new Object(-1, 'msg_invalid_request');
20.      
21.    $args->member_srl = getNextSequence();
22.    // 넘어온 모든 변수중에서 몇가지 불필요한 것들 삭제
List of Articles
번호 제목 글쓴이 날짜 조회 수
7899 무엇이든 정말로 하나님을 갈망하십니까? 말씀 2011-11-02 1057
7898 무엇이든 하나님의 권능이란 무엇인가? 말씀 2011-11-02 1411
7897 무엇이든 마지막 때를 사는 성도들이 가져야할 7대 신앙! file 묵상 2011-11-02 1773
7896 무엇이든 [만화] 저는 그만한 그릇이 못 돼요... file 삶의 예배 2011-11-02 1017
7895 무엇이든 당신의 믿음을 통해 하나님의 일이 일어나는가? file 삶의 예배 2011-11-02 857
7894 무엇이든 힘들지만 굳이 새벽기도를 드리는 이유는 무엇인가? file 삶의 예배 2011-11-02 1115
7893 무엇이든 [만화] 그가 세상을 이긴 방법 file 삶의 예배 2011-11-02 903
7892 무엇이든 나더러 주여 주여 하는자마다 천국에 들어갈 것이 아니요 중요한 말씀 2011-11-01 1598
7891 무엇이든 죽음을 위해 살지 말고, '영원' 을 위하여 사십시오! 매우 중요한 말씀 2011-11-01 1046
7890 무엇이든 세상 짝하고 하나님 뒤에 두네 file 생각 2011-11-01 1125
7889 무엇이든 나는 어째서, 더욱 잘할 수 없을까..? file 삶의 예배 2011-11-01 983
7888 무엇이든 믿음이 강해지는 비법! file 삶의 예배 2011-11-01 1032
7887 무엇이든 끝까지, 죽을 힘을 다해 붙잡아라! file 삶의 예배 2011-11-01 1006
7886 무엇이든 신앙생활은 열심히 하는데 왜 기쁨과 평안이 없을까요? file 삶의 예배 2011-11-01 1031
7885 무엇이든 변질 되어버린 복음 중요한 말씀 2011-10-31 1076
7884 무엇이든 복음은 결코, 이 세상과 친해질수 없습니다! 중요한 말씀 2011-10-31 1034
7883 무엇이든 당신은 어느쪽에 속해있는 그리스도인 입니까? file 묵상 2011-10-31 1067
7882 무엇이든 내 인생은 왜 이렇게 고통스러운가.. file 삶의 예배 2011-10-31 838
7881 무엇이든 기도로 마귀를 공격하라! file 삶의 예배 2011-10-31 895
7880 무엇이든 기적을 보여주시면 열심히 믿을 것이라고 생각하는가? file 삶의 예배 2011-10-31 908
7879 무엇이든 당신이 가장 사랑하는 것을 바칠 수 있는가? file 삶의 예배 2011-10-31 922
7878 광고알림 질병 치료와 은혜 회복을 원하시는 분! 주님사랑 2011-10-30 1043
7877 무엇이든 목사님을 향한 우상숭배(목사숭배)를 멈추십시오! 중요한 말씀 2011-10-30 1150
7876 무엇이든 예수님의 아름다우심 말씀 2011-10-30 1055
7875 무엇이든 주님의 재림과 휴거, 그 날에는... file 묵상 2011-10-30 1292
7874 무엇이든 난 죽었다가 다시 살아나도 안 갈꺼에요! file 삶의 예배 2011-10-30 1152
7873 무엇이든 이것이 바로 ‘기도’ 이다 file 삶의 예배 2011-10-30 1032
7872 무엇이든 자신의 전부를 예수님께 맡길 수 있는가? file 삶의 예배 2011-10-30 910
7871 무엇이든 예수님의 통제권에 모든 것을 두었는가? file 삶의 예배 2011-10-30 1062
» 홈페이지 무분별한 스팸글 등록으로부터 임시해결 팁 file 최용우 2011-10-29 1479
7869 무엇이든 구원이란 무엇인가? 중요한 말씀 2011-10-29 1209
7868 무엇이든 전능하신 분을 향한 부름 말씀 2011-10-29 942
7867 무엇이든 주님께서 다시 오신다는 사실을 말하고 가르치십시오! file 묵상 2011-10-29 1331
7866 무엇이든 [만화] 말씀, 골고루 읽고 묵상하셔야 합니다 file 삶의 예배 2011-10-29 986
7865 무엇이든 누군가 당신을 위해 매일 기도하고 있다면...? file 삶의 예배 2011-10-29 893
    본 홈페이지는 조건없이 주고가신 예수님 처럼, 조건없이 퍼가기, 인용, 링크 모두 허용합니다.(단, 이단단체나, 상업적, 불법이용은 엄금)
    *운영자: 최용우 (010-7162-3514) * 9191az@hanmail.net * 30150 세종시 보람1길12 호려울마을2단지 201동 1608호
XE Login