스팸 방지 팁

:bookmark: 이 문서는 Discourse 포럼에서 스팸을 방지하는 방법에 대한 포괄적인 가이드를 제공하며, 스팸 없는 커뮤니티 환경을 유지하는 데 도움이 되는 다양한 설정 및 도구에 대한 정보를 포함합니다.

:person_raising_hand: 필요한 사용자 권한: 관리자

대부분의 포럼에서는 스팸이 드뭅니다. 그러나 사이트에서 스팸 문제로 어려움을 겪고 있다면, Discourse에는 스팸을 자동으로 방지하는 데 도움이 되는 수많은 도구가 제공됩니다.

다음 가이드는 커뮤니티에 긍정적인 환영 환경을 유지하면서 스팸을 방지하는 데 도움이 되는 몇 가지 권장 사항을 제공합니다.

Discourse AI를 활용한 스팸 감지

AI 스팸 감지는 자동화된 스팸 감지를 위한 최고의 Discourse 기능 중 하나입니다. 다른 도구와 달리, 이는 사전에 구성된 규칙에 기반하여 사용자와 게시물을 자동으로 차단할 수 있습니다. AI 스팸 감지는 Discourse 호스팅의 모든 사용자에게 제공되며, LLM이 구성된 셀프 호스팅 사이트에서도 사용할 수 있습니다.

AI 스팸 감지의 이점은 다음과 같습니다:

  • 자동화: 명백한 스팸을 차단하는 데 수동 개입이 필요하지 않습니다.
  • 커스터마이징: 커뮤니티의 고유한 요구 사항에 맞게 조정할 수 있습니다.
  • 확장성: 커뮤니티가 집중적인 스팸 공격을 받아도 잘 작동합니다.
  • 광범위한 호환성: GPT-4, Claude 3.5, Gemini Flash와 같은 무료(Discourse 호스팅에서) 또는 비용 효율적인 LLM도 스팸 감지를 효과적으로 처리할 수 있습니다.

AI 스팸 감지 설정

:megaphone: 이제 Starter 및 Standard 고객의 경우 기본적으로 활성화되어 있습니다.

관리자 설정 → 플러그인 → AI → 스팸 처리에서 단순히 활성화하십시오 (상세 정보).

기본적으로 Discourse가 우리 사이트를 위해 조정된 프롬프트를 사용하지만, 사이트 특성에 맞는 사용자 지정 지침을 추가할 수 있습니다.

조정된 프롬프트 예시

:information_source: Discourse AI 를 사용하면 창의적인 AI 봇을 사용하여 사이트의 필요에 맞는 조정된 프롬프트를 생성할 수도 있습니다.

기본 신뢰 수준

사이트의 신규 사용자의 기본 신뢰 수준은 .../admin/site_settings/category/trust 페이지에서 조정할 수 있지만, 기본 신뢰 수준을 0으로 유지하는 것을 권장합니다.

이 설정의 값을 수정했다면, 신뢰 수준이 Discourse의 스팸 관련 설정과 상호작용하는 방식 때문에 이 설정을 변경하면 사이트에 심각한 스팸 위험을 초래할 수 있으므로 0: 신규 사용자로 되돌리는 것을 강하게 권장합니다.

스팸 관련 사이트 설정

:warning: 스팸으로 특별한 어려움을 겪고 있지 않다면, 다음 설정을 기본값으로 유지하는 것을 권장합니다.

Discourse에는 사이트의 .../admin/config/spam 페이지에서 접근할 수 있는 여러 스팸 관련 사이트 설정이 있습니다.

이 설정들은 스팸 감지 민감도를 높이거나 낮추고, 스팸 게시와 관련된 결과의 엄격성을 조정하는 데 사용할 수 있습니다.

다음은 사이트에서 스팸이 처리되는 방식에 눈에 띄는 영향을 미치는, 더 자주 조정되는 스팸 관련 설정 중 일부입니다.

모든 설정의 기본값은 아래에 표시되어 있습니다.

게시물 숨김

게시물 숨김 민감도게시물 숨김 후 쿨다운 분 설정은 표시된 게시물이 Discourse에 의해 자동으로 숨겨질 가능성과 사용자가 표시되고 숨겨진 게시물을 편집할 수 있기까지 기다려야 하는 시간을 제어합니다.

신규 사용자 무음 처리

Discourse에는 신규 사용자 무음 처리 사용자 수 사이트 설정이 있으며, 이는 특정 수의 고유 사용자에 의해 스팸으로 표시된 경우 신규 사용자를 자동으로 무음 처리합니다.

기본값은 3으로 설정되어 있으므로, 동일한 사용자(들)로부터 계속되는 스팸 문제로 어려움을 겪고 있다면 이 값을 낮추는 것을 고려할 수 있습니다.

링크 제한

Discourse는 신규 사용자 스팸 호스트 임계값 설정을 사용하여 외부 도메인으로의 링크를 포함할 수 있는 신규 사용자의 게시물 수를 제한합니다. 사이트의 신규 사용자가 동일한 도메인으로의 링크를 자주 스팸으로 남기는 경우, 이 설정의 값을 낮추는 것을 고려할 수 있습니다.

IP 주소 제한

Discourse는 주어진 IP 주소에서 사용자가 만들 수 있는 신규 계정 수를 제한합니다. 사이트의 문제 있는 사용자가 사이트를 스팸으로 남기기 위해 계정을 반복적으로 생성하는 것을 발견했다면, 기본값에서 이 값을 낮추는 것을 고려할 수 있습니다.

또한, 사용자가 여러 계정을 생성한 후 동일한 주제에 댓글을 남기는 것을 방지하기 위해 활성화할 수 있는 소캅펫 표시 체크박스가 있습니다:

추가로, 문제 있는 사용자의 IP 주소를 관리 페이지의 마지막 IP 주소등록 IP 주소 필드에서 수동으로 조회하고, 동일한 IP 주소와 연관된 다른 계정을 삭제할 수 있습니다.

또는 “로그 → 차단된 IP” 페이지(.../admin/logs/screened_ip_addresses)에서 스팸머가 사용하는 IP 주소를 차단하는 것을 고려하십시오:

표시 요구 사항 조정

기본적으로, 주제는 Discourse가 해당 주제에 대한 게시를 자동으로 중단하기 전에 5명의 고유 사용자에게 표시되어야 합니다.

주제 닫기 표시자 수 사이트 설정을 조정하여 주제에 대한 게시를 중단하는 데 필요한 표시자 수를 높이거나 낮출 수 있으며, 주제 자동 닫기 민감도 설정을 조정하여 해당 주제가 대신 자동으로 닫힐 가능성을 변경할 수 있습니다.

감시 단어

감시 단어는 스팸머가 반복적으로 사용할 수 있는 단어, 구문 또는 URL 링크를 포함하는 게시물을 차단하거나 제한하는 데 도움이 되는 또 다른 훌륭한 기능입니다.

스팸머가 게시물에서 동일한 유형의 텍스트를 자주 사용하는 것을 발견했다면, 사이트에 “차단” 또는 “무음” 단어를 추가하는 것을 고려하십시오.

감시 단어의 더 고급 사용을 위해, 감시 단어와 함께 정규식 사용도 고려할 수 있습니다.

신뢰 수준 요구 사항 강화

스팸이 주로 TL0 사용자로부터 온다는 것을 발견했다면, TL1에 도달하는 것을 더 어렵게 만들기 위해 일부 신뢰 수준 설정을 조정하는 것도 좋습니다:

hCaptcha 플러그인

Discourse Captcha 플러그인은 로컬 가입 양식에 hCaptcha를 통합하여 보안과 봇 보호를 강화하는 것을 목표로 합니다.

:sparkles: 모든 Discourse 호스팅 사이트에서 이 플러그인은 자동으로 포함됩니다.

추가 단계

사용자가 왜 사이트를 스팸으로 남기는지 이해하는 것이 중요합니다. 그들은 지루해서, 악의적이거나, 자신을 홍보하려는 것일까요?

어려운 사용자를 다루는 제안과 다양한 다른 조정 주제는 Discourse 조정 가이드에서 찾을 수 있으며, 사이트 조정에 대한 추가 아이디어를 얻기 위해 이 가이드를 읽어보는 것이 좋습니다.

위 내용 외에도, 단기적으로 조정 팀을 강화하여 전체적인 커버리지를 갖추는 것은 스팸과의 싸움에서 또 다른 좋은 접근 방식입니다. 핵심은 문제 있는 사용자를 지치게 하여 그들이 지루해지고 떠나게 만드는 것입니다.

이 가이드를 거친 후에도 계속 스팸 문제로 어려움을 겪고 있다면, 게시물 승인 수, 허용된 그룹 제외 승인, 또는 허용된 그룹 제외 신규 주제 승인 설정을 사용하여 신규 사용자의 모든 게시물 또는 일부 게시물을 검토 대기열에 넣는 것을 고려할 수 있습니다:

허용된 그룹 제외 승인 설정은 지정된 그룹에 속하지 않는 사용자가 만든 게시물의 승인을 요구합니다. 관리자 및 모더레이터가 만든 게시물은 항상 승인됩니다.

허용된 그룹 제외 신규 주제 승인 설정은 지정된 그룹에 속하지 않는 사용자가 만든 신규 주제의 승인을 요구합니다. 관리자 및 모더레이터가 만든 주제는 항상 승인됩니다.

그러나 게시물이 승인되지 않으면 신규 사용자가 사이트에 상호작용을 시작하기가 어려워질 수 있으므로, 이를 처리할 충분한 모더레이터가 있는지 확인하는 것이 중요합니다.

18개의 좋아요

I cant speak for all forums but I forum I used to be on as TL3 there was at least one spam post still up when I logged on for the first time for the day in my watched categories. And the one I’m currently a mod on we get an average of 2 or so spam posts a day. So I think it is some what common on a lot of forums based on that

5개의 좋아요

One very useful regular expression is \d{3}-\d{4}|[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+ which blocks email addresses and phone numbers. Don’t forget to enable settings - posting - “watched words regular expressions”.

7개의 좋아요

Hey :wave:

I’ve been making great use of these tips on my forum so…thank you! :heart:

Is there a setting that can be enabled that sends only new users signing up from say a gmail.com domain, to the review queue?

Currently, I have all new users sent to the queue for review but I’ve found the majority of the spam users are ones that are created using a gmail email. Sending only those to the review queue would reduce to load and the review time, for me at least :sweat_smile:

1개의 좋아요

@SaraDev Do you know if this is possible? I’ll love to know too as it would be very helpful to block not just IPs but specific domains!

1개의 좋아요

There is no core Discourse feature to send posts only from users on a specific domain (e.g., gmail.com) to the review queue.

The closest related feature is the auto approve email domains site setting, which allows certain email domains to bypass the manual user approval process by automatically approving users from those domains.

There are also settings for blocked email domains and allowed email domains that provide a way to restrict or control who can register on your site based on their email domains:

However, these settings would all require the must approve users setting to be enabled, and only impact users initially registering on a site, and not the interaction between creating posts and the review queue.

As a workaround, you could use Groups to accomplish a similar functionality though. For example, you could create a custom group and automatically add users who register with a specific email address to the group, and then add this group to the approve unless allowed groups and approve new topics unless allowed groups setting.

With this type of setup, you could effectively bypass the review queue for users with a specific domain, while still sending other posts to the review queue if desired.

2개의 좋아요

Hi, I was wondering whether it is possible to force a captcha on topic and/or post creation?

I don’t know, but what it helps if a bot can bypass captcha when login? Then it can do same when publishing,

True, but there seems to be captcha support for registration, so I was wondering whether the same exists for topic/post creation.

We’ve seen a number of clients hit by large spam attacks lately, and what they all had in common is that they opened up one or more categories to everyone - create, bypassing all trust level restrictions.

For seasoned Discourse admins it’s obvious that this is a bad idea, but for less experienced people it’s not. So it might be a good idea to state the (for us) obvious and add this to the start post of the topic.

7개의 좋아요

요즘 자동 등록을 악용하는 스팸 문제를 겪고 있습니다. 이들은 AI로 생성된 콘텐츠를 사용해 마치 진정한 조언을 구하는 것처럼 보이는 새로운 주제를 생성하지만, 실제로는 아마존 제휴 링크를 포함하고 있습니다. 이들은 주로 다양한 URL 단축기를 이용해 해당 링크를 숨깁니다. 또한, 답변에 회신은 물론 심지어 사적 메시지(PM)로 채팅까지 하는 등 흥미로운 방식으로 대응할 수 있습니다. 이런 문제를 경험해 보신 분 계신가요? 이러한 시도가 완전히 자동화된 것으로 보이므로, 다른 대상이 된 Discourse 포럼도 많을 것 같습니다. 이들을 차단하기 위한 전략에 대해 조언을 주실 수 있으신가요?

1개의 좋아요

Hi @Overgrow,

이러한 문제를 방지하기 위해 시도해 볼 수 있는 몇 가지 아이디어를 드립니다:

  • Discourse AI - AI triage 를 사용하여 커뮤니티에서 스팸 감지 설정을 구성 하여 이 유형의 콘텐츠를 감지하세요
  • URL 단축 서비스 및 Amazon 제휴 링크 패턴을 차단할 감시 단어 목록에 추가하세요
  • newuser spam host threshold를 낮추고 TL1(신뢰 레벨 1)에 대한 요구 사항을 높이세요
  • max new accounts per registration IP를 줄이고 flag sockpuppets(소켓펫 플래그)를 활성화하세요
  • 사이트에서 자동화된 스팸/AI 가입을 방지하는 데 도움이 되는 Discourse hCaptcha 플러그인을 사용하세요
  • 공격이 진정될 때까지 모든 신규 사용자 콘텐츠를 검토 대기열에 두도록 다음을 조정하여 고려해 보세요:
    • approve post count
    • approve unless trust level
    • approve new topics unless trust level

여기서의 접근 방식은 일반적인 스팸 방지와 유사하지만, 특히 단축 URL과 AI 생성 콘텐츠에 초점을 맞추게 됩니다.

귀하의 경우, 다음과 같은 프롬프트를 사용하여 AI 콘텐츠 감지를 특별히 시도해 볼 수 있습니다:

You are a spam detection system. Analyze the following content and context.

Notes:
- Replies must remain relevant to the discussion thread.
- Mark as SPAM if the content is irrelevant, promotional, or automated.
- Consider new user posts with links as potential SPAM unless explicitly relevant to the topic.

Watch for content that appears authentic but has unnatural patterns. 
Look for text with peculiar phrasing, excessive formality mixed with 
casual language, or generic advice that doesn't quite fit the context. 
Flag content containing hidden affiliate links, especially when the post 
seems designed to naturally lead to product recommendations.

Pay special attention to these red flags:
1. Content that poses as genuine advice requests but contains promotional elements
2. Posts that introduce a problem and then suggest specific products as solutions
3. The presence of URL shorteners (bit.ly, tinyurl, t.co, goo.gl, etc.) which may disguise affiliate links
4. Amazon product links or references, especially with affiliate parameters (tag=, ref=, affiliate=)
5. Content that seems to ask for recommendations but subtly steers toward specific products
6. Artificial quality text - overly formal language mixed with casual expressions or awkward structure
7. New accounts posting content with any of the above patterns

Respond only with "SPAM" or "NOT SPAM".
3개의 좋아요

요즘 봇 계정 때문에 정말 골치가 아파요. 두 번째로 신규 사용자 등록을 비활성화해야 했어요. 어제에는 스팸 게시물 약 30개를 올린 봇 계정 50개 이상을 삭제해야 했습니다. 이미 난이도가 높은 퍼즐이 있는 hcaptcha를 활성화해 두었지만, 봇을 막지는 못하고 있어요. 원래 3.5.0 버전을 사용하다가 공격 직후 3.6.0으로 업데이트했습니다. 이미 신뢰 수준 0에서는 링크를 허용하지 않고, 링크를 허용하려면 게시물 30개를 작성해야 하지만, 이 게시물들은 여행사나 기타 무의미한 내용으로 가득 찬 텍스트 벽에 불과합니다. 또한 실제 포럼 내용을 참조하지만 정확히 무슨 뜻인지 잘 모르는 AI 계정과 게시물도 있었습니다. 그런 것들은 사용자들에게 다소 재미있을 수 있지만, 어쨌든 포럼에서 AI를 활성화하고 싶지 않았어요. 하지만 다른 모든 옵션을 다 써 본 것 같은 느낌입니다. 그런데 이 메시지가 표시됩니다:

하지만 해당 설정을 추가할 곳이 어디인지 찾을 수가 없어요?

무엇보다 AI가 스팸에는 도움이 될 수 있지만, 이 기능을 활성화한다고 해서 봇 계정이 처음부터 생성되는 것을 막을 수 있다고는 생각하지 않습니다. 제 생각이 잘못된 건가요?

1개의 좋아요

approve post count1로 설정되어 있다면, 이 설정들을 수정할 필요가 있을까요?

솔직히 이 질문에 대한 답을 알지 못합니다.

네, approve_post_count가 1로 설정되어 있더라도 다른 설정들을 검토해야 합니다.

이 설정들이 상호작용하는 방식:

approve_post_count (1로 설정됨):

  • 신뢰 레벨 0과 1의 사용자에게 적용됩니다
  • 첫 번째 게시글이 승인되어야 합니다
  • 1개의 게시글이 승인되면 자유롭게 게시글을 작성할 수 있습니다 (여전히 TL0 또는 TL1인 경우)

approve_unless_allowed_groups (기존 approve_unless_trust_level):

  • 지정된 그룹에 속하지 않는 모든 사람에게 적용됩니다
  • 모든 게시글(첫 번째 글뿐만 아니라)이 승인되어야 합니다

approve_new_topics_unless_allowed_groups (기존 approve_new_topics_unless_trust_level):

  • 지정된 그룹에 속하지 않는 모든 사람에게 적용됩니다
  • 새로운 주제에 대해서만 승인이 필요합니다 (답변은 해당되지 않음)

주요 차이점:

  • approve_post_count는 일시적입니다 - 사용자가 카운트 임계치에 도달하면 자유롭게 게시글을 작성할 수 있습니다
  • “허용된 그룹이 아닌 경우” 설정은 지속적입니다 - 지정된 그룹에 속하지 않는 사용자의 게시글/주제에 대해 작성 횟수에 관계없이 모두 적용됩니다

사이트의 게시글 작성에 대한 더 나은 통제를 위해 설정을 조합할 수도 있습니다. 예를 들어:

  • approve_post_count: 1을 사용하여 신규 사용자(TL0/TL1)의 초기 게시글을 검토합니다
  • approve_unless_allowed_groups 설정을 사용하여 특정 그룹(예: TL2+ 멤버)을 제외한 모든 사람의 지속적 모니터링을 수행합니다

이렇게 하면 신규 사용자는 초기에 모니터링을 받고, 승인 없이 자유롭게 게시글을 작성할 수 있는 지속적인 자유를 누가 가질 수 있는지도 통제할 수 있는 접근 방식을 만들 수 있습니다.