BOARD

문제 해결

그누보드4 단어 필터링 강화 및 writeupdate.php 스팸 차단 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 11회 작성일 26-09-28 17:16

본문

그누보드4 단어 필터링 강화 및 write_update.php 스팸 차단 방법

그누보드 운영 중 스패머가 write.php를 우회하여 write_update.php로 직접 스팸 글을 등록하는 문제를 해결하기 위해, 서버 단에서 단어 필터링을 강화하는 방법을 살펴봅니다.

그누보드 단어 필터링 강화 방법

그누보드의 기본 단어 필터링은 글 작성 페이지(write.php)에서만 작동하므로, 스패머가 이를 우회하여 bbs/write_update.php로 직접 데이터를 전송하는 경우 스팸 차단이 되지 않습니다. 서버 측에서 이를 보완하는 방법은 다음과 같습니다.

적용 절차

  1. bbs/write_update.php 파일 상단의 @include_once("$board_skin_path/write_update.head.skin.php"); 코드 바로 아래에 아래 로직을 삽입합니다.
/////////////////////////////////////////////////////////////////////////
// 단어필터링 임시
/////////////////////////////////////////////////////////////////////////
$cf_filter = explode(",", $config[cf_filter]);
foreach ($cf_filter as $filter) {
 $filter = trim($filter);
 if (strstr($wr_subject, $filter))
 alert("제목에 금지단어({$filter})가 포함되어있습니다");
 if (strstr($wr_content, $filter))
 alert("내용에 금지단어({$filter})가 포함되어있습니다");
}
/////////////////////////////////////////////////////////////////////////

주의사항

  • 임시 방편: 본 방법은 그누보드 원본 파일을 수정하며, 단어 필터링만으로는 모든 스팸을 100% 차단할 수 없습니다. 적용 전 반드시 원본 파일을 백업하십시오.
  • 설정 관리: 필터링할 단어는 관리자 페이지의 환경설정 > 기본환경설정 > 단어 필터링에서 콤마(,)로 구분하여 관리합니다.

그누보드 4 write_update.php 단어 필터링 코드 삽입 위치

그누보드4 환경에서 스패머가 write.php를 거치지 않고 write_update.php로 직접 데이터를 전송하여 스팸글을 등록하는 문제를 방지하기 위해 서버 측에서 단어 필터링 로직을 추가할 수 있습니다.

코드 삽입 위치

bbs/write_update.php 파일 상단의 @include_once("$board_skin_path/write_update.head.skin.php"); 코드 바로 아래 부분에 단어 필터링 로직을 삽입해야 합니다.

적용 코드 예시

/////////////////////////////////////////////////////////////////////////
// 단어필터링 임시
/////////////////////////////////////////////////////////////////////////
$cf_filter = explode(",", $config[cf_filter]);
foreach ($cf_filter as $filter) {
 $filter = trim($filter);
 if (strstr($wr_subject, $filter))
 alert("제목에 금지단어({$filter})가 포함되어있습니다");
 if (strstr($wr_content, $filter))
 alert("내용에 금지단어({$filter})가 포함되어있습니다");
}
/////////////////////////////////////////////////////////////////////////

주의 사항 및 다음 행동

  • 해당 코드는 그누보드 원본 파일을 수정하는 방식이므로 임시 방편으로 활용하는 것을 권장합니다.
  • 단어 필터링으로 100% 스팸을 차단할 수는 없으며, 그누보드 원본 파일을 직접 수정하므로 적용 전 원본 파일을 반드시 백업하시기 바랍니다.

관리자 기본환경설정 외 필터링 단어 추가 방법

그누보드 관리자 페이지의 기본환경설정 외에 우회 문자나 변형된 스팸 단어를 추가하려면, 관리자 메뉴에서 직접 금지 단어를 수정하거나 소스코드 내에서 별도의 배열 형태로 금지어 목록을 정의하여 검사 로직에 반영할 수 있습니다.

1. 관리자 모드에서 단어 추가하기

관리자 계정으로 로그인한 뒤 관리자로그인 > 환경설정 > 기본환경설정 > 단어 필터링 항목에서 필터링할 단어를 콤마(,)로 구분하여 추가할 수 있습니다. 변형된 스팸 문자열이나 우회 표현들을 이 입력 칸에 직접 나열하여 등록합니다.

2. 소스코드 내 직접 금지어 배열 추가하기 (예: write_update.php 또는 관련 확장 파일)

관리자 화면 외에 스크립트나 특정 PHP 파일(bbs/write_update.php 등)에서 직접 금지어 목록을 $banned_words와 같은 배열 형태로 선언하여 우회 단어를 차단할 수 있습니다.

// 5. 특정 단어 필터링 (금지어)
$banned_words = ['viagra', 'casino', 'sex', '바카라'];
foreach ($banned_words as $word) {
 if (stripos($_POST['wr_content'], $word)!== false) {
 alert("내용에 금지단어가 포함되어 있습니다.");
 }
}

조건 및 주의사항

  • 적용 범위: 해당 설정 및 코드는 게시글 작성 시 제목과 내용에 포함된 금지 단어를 검사하여 등록을 막는 용도로 작동합니다.
  • 단어 필터링만으로는 100% 스팸을 차단하기 어려울 수 있으므로 임시 방편으로 활용하는 것을 권장합니다.

단어 필터링 적용 확인 방법

단어 필터링 로직을 적용한 후, 관리자 페이지의 환경설정 > 기본환경설정 > 단어 필터링에 테스트용 금지 단어를 등록합니다. 이후 해당 단어를 포함한 게시글을 작성했을 때, 경고창이 출력되며 글 등록이 차단되는지 확인하십시오. 차단되지 않는다면 코드 삽입 위치가 올바른지 다시 확인해야 합니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.