최신글모든게시글모음 인기글(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
번호 제목 글쓴이 날짜 조회 수
126 홈페이지 프로그램 설치없이 png 파일 만들기 최용우 2024-03-19 11
125 홈페이지 AVAST에서 경고문이 뜹니다. [1] 장목사 2022-01-19 40
124 홈페이지 프로그램 설치 없이 웹페이지에서 GIF만들기 다람지 2020-12-24 54
123 홈페이지 캐논 프린터 5b00 에러 완벽 해결 file [1] IUbunam 2020-07-22 174
122 홈페이지 윈도우7 부팅시 사용자계정 선택 화면을 없애기 file cyw 2015-02-11 1740
121 홈페이지 robots.txt를 현명하게 사용하는 방법 최용우 2012-09-15 3126
120 홈페이지 파일첨부 100%에서 증발 하는 문제 해결 최용우 2012-03-27 2235
119 홈페이지 XE1.5.1 업그레이드 -Fatal error가 날 경우 [1] 최용우 2012-02-18 2148
118 홈페이지 XE1.5.1 업그레이드 전 준비사항 최용우 2012-02-18 1448
» 홈페이지 무분별한 스팸글 등록으로부터 임시해결 팁 file 최용우 2011-10-29 1468
116 홈페이지 로그인 & 파일 첨부 문제 최용우 2011-10-09 1113
115 홈페이지 XE1.4.5.10 file 최용우 2011-09-05 1648
114 홈페이지 소시랑 한줄메모 스킨 file 최용우 2011-09-02 2513
113 홈페이지 납치태그를 모두 금지단어로 등록시켰습니다. 최용우 2011-07-01 1503
112 홈페이지 회원가입 할때 닉네임 필요없이 이름만 입력 받으려면 최용우 2011-06-26 1562
111 홈페이지 관리자 아이디로 embed를 볼 수 없을 때 xe 2011-06-26 1317
110 홈페이지 유용한 컴퓨터 팁 30개 최용우 2011-06-25 2565
109 홈페이지 유용한 컴퓨터 팁 22개 최용우 2011-06-25 2748
108 홈페이지 홈페이지 접속시 XE를 바로 실행하기(XE를 /xe/ 폴더에 설치한 경우) 최용우 2011-06-18 1671
107 홈페이지 CD를 ISO(이미지파일)로 변환하는 방법 file 김한영 박사 2011-06-03 5715
106 홈페이지 포토샵 택스트 크기 조절하기 file 나무 2011-05-02 2232
105 홈페이지 웹톡 설정 file 최용우 2011-04-13 1854
104 홈페이지 XE Core 1.4.5 업데이트 정보 [1] 영자 2011-03-31 4393
103 홈페이지 AMR파일 변환 [1] 최용우 2011-02-05 5184
102 홈페이지 대한민국 인터넷 보안 정책 유감 이경희 2011-02-03 1391
101 홈페이지 QR코드 생성 file QR코드 생성 2010-07-24 7544
100 홈페이지 [HTML] IE8에서 IE6,7 과 동일하게 보이게 하기 나모 2010-07-18 2241
99 홈페이지 홈페이지 접속수 올리는 13가지 비결 - 최용우 2010-04-26 2095
98 홈페이지 방문수(Visits)와 순방문자(UV)| 최용우 2010-04-26 2396
97 홈페이지 익스플로러나 메신저에서 한글 입력이 제대로 안될 때 최용우 2010-02-15 3343
96 홈페이지 너도나도 다 아는 팁... 한/영키 안먹힐때 [1] 오델라가푸 2010-02-03 2656
95 홈페이지 컴퓨터가 느려졌을 때 이렇게 해보세요 버터 2010-01-12 5353
94 홈페이지 플레너 기념일 설정 방법 최용우 2009-12-11 2286
93 홈페이지 홈페이지 로딩속도를 빨라지게 하는 10가지팁 우리아기 2009-11-29 2276
92 홈페이지 인터넷 옵션 각 항목별 설정 설명 최용우 2009-11-23 6322
    본 홈페이지는 조건없이 주고가신 예수님 처럼, 조건없이 퍼가기, 인용, 링크 모두 허용합니다.(단, 이단단체나, 상업적, 불법이용은 엄금)
    *운영자: 최용우 (010-7162-3514) * 9191az@hanmail.net * 30083 세종특별시 금남면 용포쑥티2길 5-7 (용포리 53-3)
XE Login