스팸 차단 방법 정보
스팸 차단 방법
본문
캡차가 있는 경우에도 write_update.php로 바로 스팸이 들어오는 경우가 종종 발생하네요.
그래서 메인페이지나 글쓰기 페이지에 세션을 저장하고 스팸 차단 체크를 해보았습니다.
// extend/user.extend.php 파일에 입력
if (!defined('_GNUBOARD_')) exit;
// 현재 실행되는 스크립트 이름 확인
$current_script = basename($_SERVER['SCRIPT_NAME']);
// 1. 글쓰기 화면(write.php)이나 인덱스 등 정상 경로에서 세션 생성
// (봇은 보통 이 페이지들을 렌더링하지 않고 바로 공격하므로 세션이 없음)
if ($current_script == 'write.php' || $current_script == 'index.php') {
set_session('ss_is_human_entry', true);
}
// 2. 글 저장(write_update.php) 시 세션 체크
if ($current_script == 'write_update.php' || $current_script == 'write_comment_update.php') {
// 세션이 없거나 리퍼러(이전 페이지)가 없으면 차단
if (!get_session('ss_is_human_entry')) {
die('올바르지 않은 접근입니다. (Direct Access Denied)');
}
// 추가: 리퍼러 체크 (봇은 리퍼러를 위조하기도 하지만, 없는 경우도 많음)
if (!isset($_SERVER['HTTP_REFERER']) || !$_SERVER['HTTP_REFERER']) {
die('잘못된 접근입니다. (No Referer)');
}
}
감사합니다.!-->
추천
5
5
댓글 5개
아직 스팸이 쌓이는 글은 있으나... 너무 오래된 버전의 게시판이라... 추후에 캡차가 있는 오픈된 자유게시판을 사용하게 되면 스팸 체크해보고 알려주신 방법으로 대비해봐야겠네요!

감사합니다 ^^

감사합니다.

감사합니다
저같은 경우에는 가짜 회원 가입스크립트를 통과해서 회원가입하는것을 지역IP 로를 활용해서 1차로 막았고, (효과는 있음). 2차로 게시글에 대해서 승인되지않는 사람은 못쓰게 막아서 일부분 해결을 했는데, 이 방법도 고려해봐야겠습니다.