1. Home
  2. Review (리뷰와 생활정보)/티스토리 블로그
  3. 워드프레스에 적용 가능한 '스팸 댓글 차단 방법'

워드프레스에 적용 가능한 '스팸 댓글 차단 방법'

안녕하세요. 취미 사진가 나라입니다.

워드프레스를 사용하시는 분들이라면, 항상 고민되고 스트레스받는 것 중 하나가 바로 스팸 댓글이 아닐까 합니다. 

특히 한국어 블로그를 운영하는데 영어, 일본어, 중국어, 러시아어 등 외국어로 된 스팸 댓글이 다수 달리는 경우가 많습니다. 

스팸방지 플러그인을 이용하는 방법도 있지만, 오늘 제가 소개해드릴 방법은 제가 직접 적용해 보고 가장 효과적임이 확인되어서, 그 방법을 워드프레스를 사용하시는 분들께 공유해 드리려고 이 포스팅을 작성하게 되었습니다.

무엇보다 플러그인을 사용하지 않는 방법이어서 사이트 속도 저하 문제 및 기타 오류 걱정은 없는 방법이니 잘 따라 해 보시기 바랍니다.

한국어가 포함된 댓글만 허용하는 방법

functions.php 파일에 코드 추가하기

가장 효과적인 방법은 functions.php 파일에 한글 체크 코드를 추가하는 것입니다. 이 방법은 플러그인 없이도 구현 가능합니다.

add_filter( 'preprocess_comment', function( $commentdata ) {
    $comment_content = $commentdata['comment_content'];
    $is_spam = false;
    
    if (! preg_match("/[\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}]+/u", $comment_content)) {
        // 한글이 포함되어 있는지 체크
        $is_spam = true;
    }
    
    if ( $is_spam ) {
        wp_die(
            '<p><strong>댓.글.등.록.실.패</strong>: 한.국.어.문.장.을.입.력.해.주.세.요.</p>',
            __( 'Comment Submission Failure' ),
            array(
                'back_link' => true
            )
        );
    }
    
    return $commentdata;
}, 2 );

워드프레스 관리자 페이지 → 모양 → 테마 파일 편집기 → functions.php 에 위 php 코드를 추가하고 파일 저장하면 적용이 됩니다.

이 코드는 댓글이 데이터베이스에 저장되기 전에 한글이 포함되어 있는지 확인하고, 한글이 없으면 스팸으로 간주하여 댓글 등록을 원천적으로 차단합니다.

코드 작동 원리

  1. 정규식을 사용해 댓글 내용에 한글이 포함되어 있는지 확인합니다
  2. 한글이 없으면 댓글을 스팸으로 간주하고 차단합니다
  3. 에러 메시지를 표시하여 한국어로 작성해야 함을 알립니다
※ 이 방법의 장점
플러그인 불필요: 별도의 플러그인 설치 없이 구현 가능합니다.
데이터베이스 부하 감소: 스팸 댓글이 데이터베이스에 저장되기 전에 차단됩니다.
사이트 속도 유지: 플러그인을 사용하지 않아 사이트 속도 저하가 없습니다.
효과적인 스팸 차단: 실제 사용자들의 경험에 따르면 이 방법 적용 후 스팸 댓글이 크게 감소했습니다 .
※ 주의사항
functions.php 파일 수정 시 주의: 반드시 백업 후 수정하세요. 잘못 수정하면 사이트가 작동하지 않을 수 있습니다.
정상 사용자 불편 가능성: 외국인 방문자의 정상적인 댓글도 차단될 수 있습니다.
스팸 기술 진화: 최근에는 번역기를 사용한 한글 스팸도 등장하고 있어 추가 필터링이 필요할 수 있습니다

[팁*functions.php 파일 수정 대신 WPCode 플러그인의 코드 스니펫 (PHP) 추가로 하셔도 됩니다.*]

허용하지 않는 댓글 키워드 기능 활용 방법

워드프레스 관리자 페이지 → 설정 → 토론에서 '허용하지 않는 댓글 키워드' 입력란에 댓글 블랙리스트를 복사해서 붙여 넣으면, 해당 키워드가 있는 경우 댓글이 휴지통으로 넘어가서 비공개로 됩니다.

댓글 블랙리스트는 GitHub 저장소에서 찾을 수 있습니다.

댓글 블랙리스트 페이지 바로가기

 

wordpress-comment-blacklist/blacklist.txt at master · splorp/wordpress-comment-blacklist

A simple solution for WordPress comment spam. Contribute to splorp/wordpress-comment-blacklist development by creating an account on GitHub.

github.com

댓글 수동 승인 설정 방법

워드프레스 관리자 페이지 → 설정 → 토론에서 '댓글을 수동으로 승인해야 합니다' 옵션을 활성화하면 모든 댓글이 관리자 승인 후에만 표시됩니다.

Akismet 플러그인 활용

위 방법들의 보완책으로 Akismet 같은 스팸 방지 플러그인을 사용하는 것도 좋은 방법입니다.

글을 마치며...

워드프레스를 직접 설치하고 관리하고 있다면, functions.php 수정을 통한 스팸 댓글 차단 방법은 그리 어렵지 않게 적용할 수 있을 것입니다.

워드프레스 블로그를 개설하고, 한국어 사이트임에도 외국어로 들어오는 스팸 댓글이 늘어나면서... 여러 방법을 적용해 보았으나, 한글이 댓글이 없으면 댓글을 작성할 수 없게 되는 이 방법이 제가 적용해 본 스팸 차단 방법 중 가장 강력한 스팸 차단 방법이었습니다. 원천적으로 댓글이 남지도 않아, 휴지통을 수시로 지워야 하는 번거로움도 없고 서버 리소스도 차지하지 않아 추천하는 방법입니다. 다만, 한국 외에 다국적 국가 사람들이 정상적으로 댓글을 달아야 하는 경우는 매우 불편한 방법이 될 것입니다. 이는 사이트의 성격을 운영자가 판단하여, 위에 알려드린 다른 스팸 차단 방법을 적용해 보시면 될 것입니다.

스팸댓글은 지속적으로 진화되어 오고 있습니다. 번역기를 사용한 스팸 댓글 등장도 있을 수 있으니, 주기적인 모니터링은 잊지 말고 해야 할 것입니다.

 

 

 

SNS 공유하기
네이버밴드
카카오톡
페이스북
X(트위터)

최근글
이모티콘창 닫기
울음
안녕
감사
당황
피폐