웹마스터 팁

요즘 스팸때문에 고민인 분들이 종종 보이네요.

회원만 글쓰기 하면 뭐 문제 없겠지만, 비원글쓰기 인경우 스팸테러의 우려가 있지요.

개인적으로 captcha 방식은 싫어해서.. 다른 방법을 생각해 봤구요..


소스 수정입니다.


1. 회원 자동가입방지

/modules/member/member.controller.php 

이 파일을 에디터로 엽니다.

procMemberInsert()이 함수를 찾기 기능으로 찾습니다.

빨간 글쓰 부분 추가 하면 됩니다. 

이것은 referer 확인해서외부에서 파싱하는 것을 막아 줍니다.


        function procMemberInsert() {

            if (Context::getRequestMethod () == "GET") return new Object (-1, "msg_invalid_request");

          if(!strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])) return new Object (-1, "msg_invalid_request"); 

           $oMemberModel = &getModel ('member');

            $config = $oMemberModel->getMemberConfig ();


2. 자동 글쓰기 코멘트쓰기 방지
/modules/board/board.controller.php
이 파일을 열어서
procBoardInsertDocument() 와     function procBoardInsertComment()함수를 찾아서 똑 같이 해줍니다.
      


 function procBoardInsertDocument() {
            // 권한 체크
if($this->module_info->module != "board") return new Object(-1, "msg_invalid_request");
           if (Context::getRequestMethod () == "GET") return new Object (-1, "msg_invalid_request");
            if(!$this->grant->write_document) return new Object(-1, 'msg_not_permitted');
            if(!strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])) return new Object (-1, "msg_invalid_request"); 
========================================================================================================================
        function procBoardInsertComment() {
            // 권한 체크
            
            if (Context::getRequestMethod () == "GET") return new Object (-1, "msg_invalid_request");
            if(!strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])) return new Object (-1, "msg_invalid_request"); 
            if(!$this->grant->write_comment) return new Object(-1, 'msg_not_permitted');
            $logged_info = Context::get('logged_info');

=======================================================================================================================
php. 5.3.0이상의경우는 빨간부분 추가해야 합니다.
    if(!strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'],true)) return new Object (-1, "msg_invalid_request"); 
제목 글쓴이 날짜
영문사이트 제작시 별명, 사용자 ID등 한글이 표시될때 [3] file 겨우리851 2010.03.24
제로보드4에서 XE로 넘어와 헤메는 분들을 위해서(3편:최종)-Widgets이해와 활용 [24] 황비 2010.03.26
카페24 웹호스팅에서 서브 도메인으로 접속 방법 [5] 데이스타 2010.03.28
홈페이지에 계정 사용량, DB 사용량, 현재 트래픽 출력하기 [7] file 대류 2010.03.29
본문에서 이미지 제거, 이미지만 추출하는 정규식 팁 [5] 라르게덴 2010.03.31
속도향상에 관해(경험+의견) [3] 아고라 2010.03.31
Content 위젯 목록 가로로 정렬 하기 편법 [3] file teryboy 2010.04.01
관리자 메일 수신 버그 수정 [2] 형기 2010.04.02
트위터와 구글톸을 이용한 제로보드XE 새글 알리미 구축하기 [2] 하우하우 2010.04.03
XE 기본 카운터의 방문자 / 페이지뷰 출력하고 수정하기 [5] 대류 2010.04.03
[게시판ex] 상단에 나오는 ''포인트'' 말풍선형태 배경이미지 및 PSD소스입니다. [3] file 빨간발 2010.04.04
XE 저장할때 팁 [4] 멀티하자 2010.04.05
개인 웹서버의 완성 우분투 (서버이전완료) [1] 준타 2010.04.07
자신의 인터넷ISP 80포트 지원여부. [3] 해피보이 2010.04.08
[현원式] 개나 소나 하는 CSS - 레이아웃 만들기 / 기초지식 이해편 [3] 현원 2010.04.10
새글 (댓글) 작성후 자동으로 이메일 보내질때 작성자 서명을 붙이는법 [1] 왕초봉 2010.04.10
archive 최근달 부터 보여주기 calko 2010.04.11
/home/*/public_html/xe 디렉토리에서 rewrite 적용안되는 현상 해결(.htaccess) [2] 소렌트. 2010.04.11
XE 일일이 메뉴출력하지 말고 XE함수들로 한번에 처리하세요! [1] 소렌트. 2010.04.11
서기의 자바스크립트 동영상 강의 #1 [7] 서기 2010.04.12