# 최근 스팸 물결 차단

**URL:** https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867
**Category:** Support
**Created:** [7월 3, 2024, 10:43오전 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867 "2024-07-03T10:43:09Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![SailReal](https://avatars.discourse-cdn.com/v4/letter/s/c67d28/32.png) [@SailReal](https://meta.discourse.org/u/SailReal)
#### Post date: [7월 3, 2024, 10:43오전 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/1 "2024-07-03T10:43:09Z")

</div>

며칠째 대량의 스팸 공격을 받고 있습니다. [https://ask.learncbse.in/](https://ask.learncbse.in/) 같은 다른 사이트들은 일단 포기한 상태인 것 같습니다 🤔

여기서 찾고 있는 변형은 단 하나입니다:

 ![image](https://global.discourse-cdn.com/meta/original/4X/5/c/b/5cb160a11e258b31d1b428938cd4763e8d714ee2.png)

콘텐츠가 자주 바뀌고 이메일 주소와 IP 주소도 계속 변하기 때문에 차단해도 스팸 양은 줄지만, 아직 근본적인 해결책을 찾지 못했습니다. 프라이버시 문제로 인해 모든 데이터를 Akismet에 전송하고 싶지 않습니다.

아래 네트워크들을 차단하면 해결될 것 같지만, 이는 인도 인구의 상당 부분(또는 일부)을 차단하는 결과가 될 수 있습니다.

AS55836: Reliance Jio Infocomm Limited  
AS9498: Bharti Airtel Ltd.  
AS45609: Bharti Airtel Ltd.  
AS24560: Bharti Airtel Ltd.

---

<div class="post-metadata">

### Author: ![j127](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j127/32/79093_2.png) [@j127](https://meta.discourse.org/u/j127)
#### Post date: [7월 3, 2024, 8:10오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/2 "2024-07-03T20:10:47Z")

</div>

특정 단어를 **관리자 → 커스터마이즈 → 감시 단어 → 승인 필요** 에 추가해 보셨나요?

스크린샷을 보면, 다음 단어들을 추가해 보시는 것을 추천합니다:

- cash
- credit
- money
- loan
- toll-free
- customer care
- care number
- 0779\*
- helpline
- `:point_left:`

사용자에게는 다소 번거로울 수 있지만, 저는 Discourse가 Firebase 클라우드 함수(무료)로 웹훅을 보내도록 설정해 두었습니다. 이 함수가 제 휴대폰으로 Slack 채팅방에 알림을 보내주므로, 깨어 있는 상태라면 보통 60초 이내에 휴대폰에서 승인 대기 중인 게시물을 승인할 수 있습니다.

---

<div class="post-metadata">

### Author: ![SailReal](https://avatars.discourse-cdn.com/v4/letter/s/c67d28/32.png) [@SailReal](https://meta.discourse.org/u/SailReal)
#### Post date: [7월 3, 2024, 8:41오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/3 "2024-07-03T20:41:34Z")

</div>

힌트 주셔서 감사합니다. 하지만 [https://ask.learncbse.in/](https://ask.learncbse.in/) (제 인스턴스가 아니지만 제가 맞서 싸우고 있는 스팸 게시글들과 거의 유사합니다)을 확인해 보시고, 지난 며칠간의 게시글을 스크롤해 보세요. 그들은 각 키워드의 수많은 조합과 변형을 사용하고 있습니다. 저는 각 키워드에 대해 수많은 정규식(regex)을 만드는 작업을 진행 중인데, 그들은 어디에나 “.”, “,”, "|"를 추가하고, "0"을 "O"로, "e"를 "3"으로 대체하거나, 단어 중간에 (지금까지 확인된 바로는) 랜덤한 문자를 삽입하는 등 온갖 수법을 쓰고 있기 때문입니다. 이런 유형의 스팸에 맞서 싸우는 것은 정말로 어렵습니다.

혹시 랜덤한 링크를 클릭하고 싶지 않으시면, 지난 몇 시간 동안의 스크린샷을 첨부합니다. 하지만 이는 단지 지난 몇 시간 동안의 내용일 뿐이며, 시간대에 따라 스팸의 형태가 많이 변합니다:

 ![image](https://global.discourse-cdn.com/meta/original/4X/b/c/9/bc9d01956aabe50094fede842d7e52ae1fe94346.png)

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [7월 3, 2024, 8:49오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/4 "2024-07-03T20:49:41Z")

</div>

확인 차 여쭤보는데, `min first post typing time` 관리자 설정을 사용하시나요? 저희가 실수한 부분을 많이 잡아내는 데 꽤 유용하다고 느껴서요.

---

<div class="post-metadata">

### Author: ![SailReal](https://avatars.discourse-cdn.com/v4/letter/s/c67d28/32.png) [@SailReal](https://meta.discourse.org/u/SailReal)
#### Post date: [7월 3, 2024, 8:51오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/5 "2024-07-03T20:51:05Z")

</div>

네, 힌트 감사합니다. 이미 설정해 두었지만, 봇이 몇 분만 기다리는 건 그렇게 어려운 일이 아니라고요 🙂

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [7월 3, 2024, 8:59오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/6 "2024-07-03T20:59:03Z")

</div>

이 스팸은 다른 주제에서 다루는 AI 기반 답변/콘텐츠와 유형이 다른 것 같아서 따로 분리했습니다. 👍

최근 스팸 탐지를 위한 새로운 AI 기반 도구를 도입했는데, 상당히 효과적인 것으로 입증되었습니다:

> [@커뮤니티에서 스팸 감지 설정하기](https://meta.discourse.org/t/setting-up-spam-detection-in-your-community/300427):
>
> bookmark 이는 Discourse AI - AI 트리아지를 사용하여 커뮤니티에서 스팸 감지를 설정하는 방법에 대한 안내서입니다. person_raising_hand 필요한 사용자 권한: 관리자 warning Discourse AI에는 이제 [최소 설정으로 작동하는 효율적인 스팸 스캐너](https://meta.discourse.org/t/discourse-ai-spam-detection/343541)가 기본 제공됩니다. 맞춤형 또는 복잡한 사용 사례의 경우 이 안내서를 따르는 것을 권장합니다. 개요 스팸 감지는 커뮤니티에서 토론의 질을 유지하는 데 필수적인 기능입니다. 이 안내서는 [Discourse AI - AI 트리아지](https://meta.discourse.org/t/discourse-ai-ai-triage/281227)를 사용하여 스팸 감지를 설정하는 방법을 안내합니다. 사전 요구 사항 스팸 감지를 구성하려면 다음이 필요합니다: [Discourse AI](https://meta.discourse.org/t/discourse-ai/259214)[Discourse Automation](https://meta.discourse.org/t/discourse-automation/195773) 스팸 콘텐츠의 기준을 정의하는 시스템 프롬프트가 포함된 [AI 에이전트](https://meta.discourse.org/t/ai-bot-personas/306099) LLM(대형 언어 모델) Discourse 호스팅 고객은 AI 에이전트를 구성할 때 호스팅된 LLM을 선택할…

---

<div class="post-metadata">

### Author: ![SailReal](https://avatars.discourse-cdn.com/v4/letter/s/c67d28/32.png) [@SailReal](https://meta.discourse.org/u/SailReal)
#### Post date: [7월 3, 2024, 9:10오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/7 "2024-07-03T21:10:11Z")

</div>

팁은 감사하지만, 스팸을 하는 다른 LLM과 우리 디스커스를 두고 싸우기 위해 LLM을 설정하는 것은 우리 용도에는 너무 비쌉니다.

스패머라면 더 많은 사용자/게시물을 생성하기만 하면 조직의 비용을 쉽게 올릴 수 있으므로, 어떤 것을 달성하고 싶은지에 따라 더 많은 게시물을 생성하는 동기가 될 수도 있습니다 🙂

---

<div class="post-metadata">

### Author: ![anon82911141](https://avatars.discourse-cdn.com/v4/letter/a/a5b964/32.png) [@anon82911141](https://meta.discourse.org/u/anon82911141)
#### Post date: [7월 3, 2024, 9:24오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/8 "2024-07-03T21:24:14Z")

</div>

안녕하세요,

[Akismet](https://meta.discourse.org/t/discourse-akismet/109337)을 사용해 보셨나요? 그 솔루션이 사용자에게 적합할 것 같습니다.

(개인 사용은 무료, 상업적 사용은 불가 - 본인의 사용 목적을 어떻게 분류해야 할지 모르겠네요)

---

<div class="post-metadata">

### Author: ![Firepup650](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firepup650/32/465200_2.png) [@Firepup650](https://meta.discourse.org/u/Firepup650)
#### Post date: [7월 3, 2024, 9:25오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/9 "2024-07-03T21:25:29Z")

</div>

여기서는 모든 사용자의 첫 게시글을 승인하도록 요구하는 것이 조금이라도 도움이 될까요? 그렇게 하면 적어도 게시글이 공개적으로 포럼에 올라가는 일은 없을 테고, 매일 실제 사용자가 대량으로 가입하지 않는 한 최소한 일부는 도움이 될 것이라고 생각합니다.

---

<div class="post-metadata">

### Author: ![SailReal](https://avatars.discourse-cdn.com/v4/letter/s/c67d28/32.png) [@SailReal](https://meta.discourse.org/u/SailReal)
#### Post date: [7월 3, 2024, 9:43오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/10 "2024-07-03T21:43:46Z")

</div>

팁들 감사합니다.

> [@anon82911141](#):
>
> [Akismet](https://meta.discourse.org/t/discourse-akismet/109337)을 사용해 보셨나요? 그 솔루션이 여러분에게 적합해 보입니다.

그것도 생각해 봤지만, 저희는 프라이버시 및 보안 제품이라 사용자를 최대한 보호해야 합니다. 콘텐츠는 공개적이지만, 제가 [https://meta.discourse.org/t/discourse-akismet/109337](https://meta.discourse.org/t/discourse-akismet/109337)을 올바르게 이해했다면 IP 주소/에이전트/리퍼러/이메일은 공개되지 않습니다. 이 정보는 Akismet로 전송되므로(사실상 개인정보 처리방침을 읽어볼 수도 있지만, 이미 개요만으로도 결정에 충분한 정보입니다).

> [@Firepup650](#):
>
> 아마 모든 사용자의 첫 번째 게시글을 승인하도록 요구하는 것이 조금 도움이 될까요?

좋은 아이디어네요. 하루에 약 2명의 가입자만 있으니 큰 부담은 되지 않을 것 같지만, 승인을 기다리는 것은 최고의 경험은 아닙니다. 하지만 잘 설명해 준다면 현재로서는 최선의 선택일 수 있습니다.

---

<div class="post-metadata">

### Author: ![anon82911141](https://avatars.discourse-cdn.com/v4/letter/a/a5b964/32.png) [@anon82911141](https://meta.discourse.org/u/anon82911141)
#### Post date: [7월 3, 2024, 9:46오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/11 "2024-07-03T21:46:01Z")

</div>

네, 불행히도 맞습니다. Akismet으로 개인정보 보호 정책과 일치하지 않을 수 있는 추가 데이터를 전송합니다. 그런 경우, @Firepup650님의 제안이 가장 좋은 방법입니다.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [7월 3, 2024, 10:33오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/12 "2024-07-03T22:33:48Z")

</div>

> [@SailReal](#):
>
> 만약 우리가
> 
> AS55836: Reliance Jio Infocomm Limited  
> AS9498: Bharti Airtel Ltd.  
> AS45609: Bharti Airtel Ltd.  
> AS24560: Bharti Airtel Ltd.
> 
> 을 차단한다면 문제가 없을 것입니다.

참고로, 제 [Geo Blocking plugin](https://meta.discourse.org/t/geo-blocking-plugin/227824) 플러그인은 소스 AS 네트워크를 기반으로 Discourse 접근을 거부할 수 있습니다. 실제로 이러한 유형의 스팸의 상당 부분이 해당 네트워크, 특히 AS45609에서 유래하는 것으로 보입니다.

인도의 절반을 차단하고 싶지 않다면, 해당 플러그인의 일부 기능을 재사용하여 승인 로직에 네트워크 또는 IP 기반 규칙(예: “해당 네트워크에서 온 새 게시글에 대해 승인 요구”)을 추가하는 것이 얼마나 어려운지 조사해 볼 가치가 있을 것입니다.

---

<div class="post-metadata">

### Author: ![j127](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j127/32/79093_2.png) [@j127](https://meta.discourse.org/u/j127)
#### Post date: [7월 3, 2024, 11:36오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/13 "2024-07-03T23:36:09Z")

</div>

해당 예시 사이트에서 여러 페이지를 탐색해 보았는데, Discourse의 정규 표현식이 유니코드 범위를 지원할 수 있다면, 감시 단어(watched words) 기능을 통해 거의 모든 사례를 차단할 수 있을 것 같습니다.

일반 사용자는 다음과 같은 요소를 거의 사용하지 않습니다:

- 연속된 슬래시 2개 이상
- 특수한 구두점, 예: ^ (수학 사이트가 아닌 한)
- 드문 유니코드 범위:
  - ✓ (기타 기호)
  - ∆ (그리스어 및 코プト어)
  - ❽, ➁, ❸, 3, ❷ (뎅뱃(Dingbats))
  - 𝘾, 𝙪, 𝙨, 𝙩 (수학용 알파벳 및 숫자 기호)

Discourse가 이를 지원한다면 ChatGPT가 이러한 요소들을 위한 정규 표현식을 작성할 수 있을 것입니다.

또 다른 아이디어는 [Bot Fight Mode 기능](https://developers.cloudflare.com/bots/get-started/free/) (무료)을 갖춘 Cloudflare를 사용해 모든 봇에 대한 챌린지를 시도해 보는 것입니다.

---

<div class="post-metadata">

### Author: ![SailReal](https://avatars.discourse-cdn.com/v4/letter/s/c67d28/32.png) [@SailReal](https://meta.discourse.org/u/SailReal)
#### Post date: [7월 4, 2024, 8:18오전 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/14 "2024-07-04T08:18:50Z")

</div>

> [@RGJ](#):
>
> 참고로, 제 [Geo Blocking 플러그인](https://meta.discourse.org/t/geo-blocking-plugin/227824)은 소스 AS 네트워크를 기반으로 Discourse에 대한 액세스를 거부할 수 있습니다. 실제로 이 유형의 스팸은 AS45609를 비롯한 해당 네트워크들에서 유입되는 경우가 많습니다.
> 
> 인도의 절반을 차단하고 싶지 않다면, 해당 플러그인의 일부 기능을 재사용하여 승인 로직에 네트워크 또는 IP 기반 규칙(예: “특정 네트워크에서 온 새 게시글은 승인 필요”)을 추가하는 것이 얼마나 어려운지 조사해 볼 가치가 있을 것입니다.

오, 그거 완벽한 해결책이겠네요. 코드를 살펴보고겠습니다. 감사합니다!

> [@j127](#):
>
> 해당 예시 사이트에서 여러 페이지를 스크롤해 보았는데, Discourse의 정규 표현식이 유니코드 범위를 처리할 수 있다면 ‘감시 단어’ 기능을 통해 거의 모든 것을 차단할 수 있을 것 같습니다.
> 
> 일반 사용자들은 이런 것을 사용하진 않을 텐데요:

여기서 문제는 이 봇이 Discourse가 어떻게 작동하는지를 어떻게 알고 있다는 점입니다. 다음 시나리오를 보겠습니다. ‘승인 필요’ 섹션에서 ❽를 감시하고 있습니다. 문제는 이러한 봇들이 먼저 랜덤한 텍스트를 생성한 다음 실제 내용으로 수정한다는 것입니다. 게시글 수정은 ‘승인 필요’ 목록과 대조되어 검사되지 않습니다. 예를 들어

 ![image](https://global.discourse-cdn.com/meta/original/4X/c/0/b/c0bf0777d3b21cc6636ad5c4c3bea002d3581d80.png)

VS

 ![image](https://global.discourse-cdn.com/meta/original/4X/9/d/d/9ddeef0a97c02eff18aa9ea8084af12754eec347.png)

(여기서는 게시글 생성 시 ❽를 직접 추가했습니다)

즉, 유일한 선택지는 이를 차단 섹션에 추가하는 것입니다. 하지만 너무 많은 단어와 문자를 차단하면 정상적인 사용자가 유효한 게시글을 작성할 때 혼란스러운 메시지를 받게 되는 문제가 쉽게 발생할 수 있습니다. 대부분의 문제가 여기서 비롯된다고 생각합니다. 제 생각에는 이것이 버그이며, 게시글을 수정할 때도 변경 사항이 게시될 때 수정된 내용이 ‘승인 필요’ 목록과 대조되어 검사되어야 합니다.

---

<div class="post-metadata">

### Author: ![j127](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j127/32/79093_2.png) [@j127](https://meta.discourse.org/u/j127)
#### Post date: [7월 4, 2024, 8:54오전 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/15 "2024-07-04T08:54:44Z")

</div>

> [@SailReal](#):
>
> 게시글을 수정할 때, 게시가 완료되면 수정된 내용을 기준으로 “승인 필요” 목록을 확인해야 합니다.

그렇다면 감시 단어는 도움이 되지 않을 것 같습니다. 아직 그런 스팸 공격을 받은 적은 없지만, 사용자들이 [이를 파악하기 시작했기 때문에](https://meta.discourse.org/t/send-edits-of-approved-posts-back-to-approval-queue/231377/6) 우려하고 있습니다.

---

<div class="post-metadata">

### Author: ![j127](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j127/32/79093_2.png) [@j127](https://meta.discourse.org/u/j127)
#### Post date: [7월 13, 2024, 5:11오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/16 "2024-07-13T17:11:51Z")

</div>

내 포럼 중 하나가 같은 유형의 스팸 공격을 받은 것 같습니다. 감시 단어 목록에 스팸 단어가 아직 없었기 때문에 편집 트릭을 사용했는지 알 수 없어요.

---

<div class="post-metadata">

### Author: ![juanjosegzl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/juanjosegzl/32/511141_2.png) [@juanjosegzl](https://meta.discourse.org/u/juanjosegzl)
#### Post date: [7월 13, 2025, 6:09오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/17 "2025-07-13T18:09:17Z")

</div>

모두 안녕하세요 👋

이 기능의 개념 증명(PoC)을 만들었습니다. 관심 있으시면 한번 확인해 보세요.

> **[GitHub - juanjosegzl/discourse-geo-blocking](https://github.com/juanjosegzl/discourse-geo-blocking)**
>
> Contribute to juanjosegzl/discourse-geo-blocking development by creating an account on GitHub.

> [@최근 스팸 물결 차단](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/12?u=juanjosegzl):
>
> FYI my [Geo Blocking plugin](https://meta.discourse.org/t/geo-blocking-plugin/227824) can deny access to Discourse based on the source AS network. Indeed a lot of this kind of spam seems to originate from those networks, especially AS45609. If you don’t want to block half of India then it might be worth investigating how hard it would be to reuse some of the functionality in that plugin to add network or IP based rules to the approval logic (“require approval for new posts from networks”)

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [7월 13, 2025, 9:29오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/18 "2025-07-13T21:29:08Z")

</div>

잘하셨어요 @juanjosegzl! 이걸 PR로 기꺼이 받아들이겠습니다! 🚀

---

<div class="post-metadata">

### Author: ![juanjosegzl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/juanjosegzl/32/511141_2.png) [@juanjosegzl](https://meta.discourse.org/u/juanjosegzl)
#### Post date: [7월 19, 2025, 2:33오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/19 "2025-07-19T14:33:36Z")

</div>

감사합니다 @RGJ. 방금 [PR](https://github.com/communiteq/discourse-geo-blocking/pull/5)을 열었습니다.

---

<div class="post-metadata">

### Author: ![Shelim](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shelim/32/515244_2.png) [@Shelim](https://meta.discourse.org/u/Shelim)
#### Post date: [7월 29, 2025, 5:24오후 UTC](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867/20 "2025-07-29T17:24:17Z")

</div>

안녕하세요 @juanjosegzl,

최근 PR으로 인해 플러그인이 깨졌습니다. 이제 모든 사용자의 게시물이地理位置에 관계없이(모더레이터 포함) 모더레이션 확인을 요구합니다. 우회 방법이나 수정 예정일이 있을까요?

[다음 페이지](https://meta.discourse.org/t/blocking-recent-wave-of-spam/314867.md?page=2)
