BOARD

팁·활용

그누보드 외부 스팸 차단 라이브러리(zmSpamFree) 연동 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 21회 작성일 26-09-29 16:49

본문

그누보드 외부 스팸 차단 라이브러리(zmSpamFree) 연동 방법

그누보드 게시판에 외부 스팸 차단 라이브러리인 zmSpamFree 캡차를 연동하여 스팸 글 등록을 방지하는 구체적인 설치 및 코드 삽입 방법을 확인할 수 있습니다. 본 라이브러리는 오래된 자료로 최신 PHP 환경(7.x, 8.x 이상)에서의 호환성이나 보안 패치가 보장되지 않을 수 있습니다. 운영 중인 그누보드 버전에 따라 파일 구조와 적용 위치가 다를 수 있으므로, 적용 전 반드시 백업을 권장합니다.

zmSpamFree 라이브러리 업로드 및 폴더 구조·퍼미션 설정 방법

서버에 zmSpamFree 라이브러리를 업로드하고 정상 동작을 위한 폴더와 퍼미션을 설정하는 절차는 다음과 같습니다.

1. 폴더 업로드

  • zmSpamFree 폴더를 서버에 업로드합니다.
  • 권장 위치: 서버 상단 폴더에 zmSpamFree 폴더로 업로드하는 것이 이미지 깨짐(엑박) 현상 발생 확률을 낮추는 데 유리합니다. 다른 폴더에 업로드할 경우 엑박 현상이 발생하는 것이 확인되었습니다.

2. 기본 폴더 구조

업로드되는 폴더 및 파일 구성은 다음과 같습니다.

zmSpamFree
├ Fonts
├ Log <== 폴더 생성 후 퍼미션 변경 필요
├ index.php <== 테스트 파일 (정상적으로 코드가 보여야 함)
├ LICENSE
├ uninstall.php
├ zmspamfree.js
├ zmSpamFree.php
└ zsfCfg.php

3. 퍼미션 설정

  • Log 폴더: 폴더 생성 후 퍼미션을 707 이상으로 변경합니다. 보안 코드가 보이지 않을 경우 확인하는 위치입니다.
  • 운영 환경 사례에 따라 그누보드4 / data / log / zmSpamFree 경로의 퍼미션을 777로 변경하는 방식도 참고할 수 있습니다.

글쓰기 페이지 캡차 코드 삽입 방법

글쓰기 페이지(write.php 등)에서 스팸 차단 코드를 출력하려면 보안 코드 이미지와 사용자가 답을 입력할 수 있는 폼을 함께 배치해야 합니다.

삽입 위치 및 코드 예시

글쓰기 페이지 내 적당한 위치에 아래의 코드를 삽입합니다. 코드 내 경로 부분은 본인 서버의 주소에 맞게 수정해야 합니다.

<a href="#" onclick="document.getElementById('zsfImg').src='/zmSpamFree/zmSpamFree.php?re&zsfimg=' + new Date().getTime(); return false;">
<img src="/zmSpamFree/zmSpamFree.php?zsfimg=<?php echo time();?>" id="zsfImg" alt="보안코드가 안 보이시면 클릭하세요" border="0" style="vertical-align:middle;" /></a>
<input type="text" size="8" maxlength="10" name="zsfCode" id="zsfCode" />옆에 보이는 문제의 답을 입력해주세요

주의 사항

  • 서버 주소 경로 예시: https://www.happyjung.com/bbs 또는 /bbs 형식으로 본인 환경에 맞춰 수정합니다.
  • 보안 코드가 이미지로 정상 출력되지 않고 깨져 보일 경우, Log 폴더의 퍼미션을 707로 변경해야 합니다.

입력 처리 페이지에서 캡차 코드 검증 및 차단 코드 삽입 방법

입력 처리 페이지(write_ok.php 등)에서 사용자가 입력한 캡차 코드를 검증하고, 틀렸을 경우 글 등록을 차단하려면 해당 파일에 검증 코드를 삽입해야 합니다.

1. 코드 삽입 위치 및 예시

입력 처리 페이지 상단 또는 글 등록 처리 로직 앞부분에 아래의 코드를 추가합니다. 경로 부분은 본인 서버의 디렉토리 구조에 맞게 수정해야 합니다.

// 지엠스팸프리 검사
include "../zmSpamFree/zmSpamFree.php"; // 입력페이지에서 zmSpamFree 경로체크
if (!zsfCheck( $_POST['zsfCode'] ) ) {
 echo "<script type='text/javascript'>";
 echo " alert('스팸차단코드가 틀렸습니다.');";
 echo " history.back();";
 echo "</script>";
 exit;
}

2. 예외 및 주의사항

  • 그누보드 버전에 따라 폼에서 전송되는 필드 이름이 다를 수 있으므로(예: zsfCode 대신 wr_key 등 사용), 적용하는 스킨과 입력 처리 페이지의 name 값을 확인해야 합니다.
  • 잘못된 코드가 입력된 경우 위 예시처럼 alert 경고창을 띄우고 history.back();과 exit을 통해 이전 페이지로 돌려보내 게시글 등록을 중단시킬 수 있습니다.

보안 코드 이미지 엑박 발생 시 확인 사항

zmSpamFree 라이브러리 적용 후 보안 코드가 이미지로 출력되지 않고 엑박(깨짐 현상)이 발생할 때는 서버 환경 및 폴더 권한을 점검해야 합니다.

1. Log 폴더 퍼미션 변경

보안코드가 보이지 않을 경우 라이브러리 내 Log 폴더의 퍼미션을 777로 변경하여 쓰기 권한을 부여해야 합니다.

  • 그누보드4 환경 기준으로 서버 이전 후 이미지가 나타나지 않을 때 그누보드4 / data / log / zmSpamFree 경로의 퍼미션을 확인하고 변경합니다.

2. 업로드 경로 확인

zmSpamFree 폴더를 다른 폴더에 업로드했을 때 엑박이 나오는 현상이 확인된 바 있습니다. 서버 상단 폴더에 zmSpamFree 폴더로 업로드하는 것이 엑박 발생 확률을 낮추는 방법입니다.

3. 필수 파일 존재 여부 점검

글쓰기 페이지에서 사용되는 관련 파일 및 스크립트 파일이 서버에 정상적으로 존재하는지 점검합니다.

상황별 표

내 상황선택 기준다음 행동
라이브러리 설치 및 엑박 방지서버 상단 폴더 배치 및 권한 설정zmSpamFree 폴더를 서버 상단에 업로드하고 Log 폴더 퍼미션을 707 이상(또는 777)으로 변경
글쓰기 페이지에 캡차 출력보안 코드 이미지 및 입력 폼 삽입write.php 내 적절한 위치에 <img> 태그 및 zsfCode 입력 폼 삽입
글 입력 처리 시 검증캡차 검증 함수 호출 및 차단 로직write_ok.php 상단에 include 경로 설정 및 zsfCheck() 함수 검증 로직 삽입
문제 유형 변경환경설정 파일 수정zsfCfg.php 내 $zsfCfg['codeForm'] 배열 값 수정

실전 FAQ

Q. 보안 코드가 이미지로 보이지 않고 엑박(깨짐 현상)이 나타날 때는 어떻게 해야 하나요?

  • 예외 및 대안: 라이브러리를 하위 폴더에 업로드할 경우 엑박이 발생할 수 있습니다. 서버 상단 폴더에 zmSpamFree 폴더를 배치하고, Log 폴더의 퍼미션을 707 이상(그누보드4 환경 기준 data/log/zmSpamFree 경로 등은 777)으로 변경하여 쓰기 권한을 부여하세요.

Q. 덧셈이나 뺄셈 같은 스팸방지 문제 종류는 어떻게 변경할 수 있나요?

  • 예외 및 대안: 지엠스팸프리의 환경설정 파일인 zsfCfg.php의 약 41번째 줄에 있는 $zsfCfg['codeForm'] 값을 수정하여 (예: array(1, 2)), 큰 수/작은 수 비교나 덧셈·뺄셈 등의 연산 문제로 변경할 수 있습니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.