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

어여 어서 올라오세요

대청마루(자유게시판)

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

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

홈페이지 최용우............... 조회 수 1468 추천 수 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
번호 제목 글쓴이 날짜 조회 수
7946 무엇이든 성경은 '사실' 입니다! file 주님의 마음 2011-11-08 873
7945 무엇이든 부활의 예표 주님의 마음 2011-11-08 991
7944 무엇이든 주님께서 곧 오신다는 사실을 분명히 믿는다면.. file [1] 묵상 2011-11-08 1229
7943 무엇이든 하나님은 당신에게 성공이 아닌 '순종'을 원하십니다 file 삶의 예배 2011-11-08 933
7942 무엇이든 ‘헉, 이것은 나만 아는 비밀인데....’ file 삶의 예배 2011-11-08 970
7941 무엇이든 나는 비겁한 남편을 원하지 않아요! file 삶의 예배 2011-11-08 996
7940 무엇이든 저, 상처받았어요.. file 삶의 예배 2011-11-08 877
7939 무엇이든 우리가 아직 도달했습니까? 주님의 마음 2011-11-07 887
7938 무엇이든 포기하지 않으시는 하나님 주님의 마음 2011-11-07 894
7937 무엇이든 남겨진 사람들의 슬픔 영상 2011-11-07 1029
7936 무엇이든 당신은 세상 사람들이 좋다고 하면 무조껀 따라 할 것인가? file 삶의 예배 2011-11-07 937
7935 무엇이든 99%는 의미가 없다, 100% 진심을 요구하신다! file 삶의 예배 2011-11-07 866
7934 무엇이든 바로 그거예요! 믿음으로 시작합시다! file 삶의 예배 2011-11-07 1123
7933 무엇이든 당신의 약함을 인정하고 하나님의 도우심을 구하라 file 삶의 예배 2011-11-07 1170
7932 방명록 졸업 [4] palbok91 2011-11-07 13685
7931 무엇이든 아바, 아바,, 아버지의 마음.. 주님의 마음 2011-11-06 1092
7930 무엇이든 많은 사람들 앞에서는 주님을 부인하는 자... 묵상 2011-11-06 1016
7929 무엇이든 당신은 하나님 편인가 세상 편인가 file 삶의 예배 2011-11-06 1006
7928 무엇이든 빨리 파헤쳐라, 인생의 보물이 그 속에 있다 file 삶의 예배 2011-11-06 966
7927 무엇이든 하나님의 약속을 끝까지 믿으라! file 삶의 예배 2011-11-06 969
7926 무엇이든 아, 안돼.. 이런 상태로는... file 삶의 예배 2011-11-06 1017
7925 광고알림 안녕하세요 ㄷㄱㅈㄱㄷㅈ 2011-11-05 989
7924 무엇이든 천국에 들어기지 못하는 가짜 기독교인 ③ 중요한 말씀 2011-11-05 1178
7923 무엇이든 천국에 들어기지 못하는 가짜 기독교인 ② 중요한 말씀 2011-11-05 1123
7922 무엇이든 969년 전에 예고되었던 대 홍수 file 묵상 2011-11-05 1162
7921 무엇이든 주여, 그럴 수 없나이다. 내가 결코 따를 수 없습니다! file 삶의 예배 2011-11-05 1049
7920 무엇이든 이제는 투덜대지 마세요 file 삶의 예배 2011-11-05 1021
7919 무엇이든 믿음 있는 '척' 하는 신앙생활을 이제 그만! file 삶의 예배 2011-11-05 1154
7918 무엇이든 비워야 채울수 있습니다 file 삶의 예배 2011-11-05 1181
7917 무엇이든 천국에 들어가지 못하는 가짜 기독교인 ① 중요한 말씀 2011-11-04 1175
7916 무엇이든 안타까운 이 땅의 현실… 마음을 자중하라 file 묵상 2011-11-04 1072
7915 무엇이든 당신은 하나님의 고유권한을 침범했다! file 삶의 예배 2011-11-04 1076
7914 무엇이든 괜찮은 척하지 말고 아프면 아프다고 부르짖으라! file 삶의 예배 2011-11-04 1011
7913 무엇이든 주님, 꼭 이렇게 하셔야 합니다! file 삶의 예배 2011-11-04 786
7912 무엇이든 주님, 나를 깨뜨려 주시옵소서! file 삶의 예배 2011-11-04 1026
    본 홈페이지는 조건없이 주고가신 예수님 처럼, 조건없이 퍼가기, 인용, 링크 모두 허용합니다.(단, 이단단체나, 상업적, 불법이용은 엄금)
    *운영자: 최용우 (010-7162-3514) * 9191az@hanmail.net * 30083 세종특별시 금남면 용포쑥티2길 5-7 (용포리 53-3)
XE Login