スパムを防止するためのヒント

:bookmark: このドキュメントは、Discourse フォーラムでのスパム防止に関する包括的なガイドを提供し、スパムのないコミュニティ環境を維持するために設計されたさまざまな設定やツールに関する情報を含んでいます。

:person_raising_hand: 必要なユーザーレベル:管理者

多くのフォーラムではスパムは稀ですが、サイト内でスパムの問題に直面している場合、Discourse には自動的にスパムを防止するための多数のツールが用意されています。

以下のガイドでは、コミュニティにとってポジティブで歓迎される環境を維持しつつ、スパムを防止するためのいくつかの推奨事項を紹介します。

Discourse AI によるスパム検出

AI スパム検出 は、自動化されたスパム検出のための Discourse の最も優れた機能の一つです。他のツールとは異なり、事前に設定されたルールに基づいてユーザーや投稿を自動的にブロックできます。AI スパム検出は、Discourse ホスティングを利用するすべてのユーザー、および LLM が設定されたセルフホスト型サイトでも利用可能です。

AI スパム検出の利点は以下の通りです:

  • 自動化: 明らかなスパムをブロックするために手動での介入は不要です。
  • カスタマイズ性: コミュニティの独自の要件に合わせて調整できます。
  • スケーラビリティ: コミュニティが激しいスパム攻撃を受けていても効果的に機能します。
  • 広範な互換性: 無料(Discourse ホスティングの場合)および予算に優しい LLM(GPT-4、Claude 3.5、Gemini Flash など)でも、スパム検出を効果的に処理できます。

AI スパム検出の設定

:megaphone: これは現在、Starter および Standard カスタマーに対してデフォルトで有効化されています

管理設定 → プラグイン → AI → スパム処理(詳細はこちら)でオンにするだけです。

デフォルトでは、Discourse が当サイト向けに調整したプロンプトが使用されますが、サイト固有のカスタム指示を追加することもできます。

調整済みプロンプトの例

:information_source: Discourse AI を使用すると、クリエイティブ AI ボットを使ってサイトのニーズに合わせたプロンプトを生成することもできます。

デフォルトの信頼レベル

サイトの新規ユーザーのデフォルトの信頼レベルは、.../admin/site_settings/category/trust ページで調整できますが、default trust level を 0 に設定したままにしておくことをお勧めします。

この設定の値を変更した場合は、信頼レベルが Discourse のスパム関連設定と相互作用する仕組みにより、サイトを深刻なスパムのリスクにさらす可能性があるため、強く推奨します。この設定を 0: new user に戻してください。

スパム関連のサイト設定

:warning: 具体的にスパムの問題に直面していない限り、以下の設定をデフォルト値のままにしておくことをお勧めします。

Discourse には、サイトの .../admin/config/spam ページからアクセスできるいくつかのスパム関連のサイト設定があります。

これらの設定を調整して、スパム検出の感度や、スパム投稿に関連する結果の厳格さを増減させることができます。

以下は、サイトのスパム処理に顕著な影響を与える、より一般的に調整されるスパム関連の設定の一部です。

すべての設定のデフォルト値を以下に示します。

投稿の非表示化

hide post sensitivity(投稿非表示感度)および cooldown minutes after hiding posts(投稿非表示後のクールダウン時間)の設定は、フラグ付き投稿 が Discourse によって自動的に非表示化される可能性と、フラグ付きで非表示化された投稿を編集する前にユーザーが待機しなければならない時間を制御します。

新規ユーザーのサイレンス

Discourse には num users to silence new user というサイト設定があり、新規ユーザーの投稿が特定の数のユニークユーザーによってスパムとしてフラグ付けされた場合、そのユーザーを自動的にサイレンスします。

デフォルトでは 3 に設定されているため、同じユーザー(複数人)から継続的にスパムが届いている場合は、この値を下げることを検討してください。

リンクの制限

Discourse は、newuser spam host threshold 設定により、新規ユーザーが外部ドメインへのリンクを含む投稿を行える回数を制限します。サイトの新規ユーザーが頻繁に同じドメインへのリンクをスパムしている場合は、この設定の値を下げることを検討してください。

IP アドレスの制限

Discourse は、任意の IP アドレスから作成できる新規アカウントの数を制限します。サイト内で問題のあるユーザーが繰り返しアカウントを作成してスパムを行っている場合は、デフォルト値からこの値を下げることを検討してください。

また、ユーザーが同じトピックに対して複数のアカウントを作成してコメントすることを防ぐために、flag sockpuppets チェックボックスを有効にすることもできます:

さらに、問題のあるユーザーの IP アドレスを管理者ページで Last IP Address(最後の IP アドレス)および Registration IP Address(登録 IP アドレス)フィールドから手動で調べ、同じ IP アドレスに関連付けられた他のアカウントを削除することもできます。

または、「Logs → Screened IPs」ページ(.../admin/logs/screened_ip_addresses)でスパマーが使用している IP アドレスをブロックすることも検討してください:

フラグ要件の調整

デフォルトでは、Discourse が自動的にそのトピックへの投稿を停止する前に、トピックが 5 人のユニークユーザーによってフラグ付けされる必要があります。

num flaggers to close topic サイト設定を調整して、トピックへの投稿を停止するために必要なフラグ付け者の数を増減させ、auto close topic sensitivity 設定を調整して、対象のトピックが自動的にクローズされる可能性を変更できます。

ウォッチドワード

ウォッチドワード は、スパマーが繰り返し使用する可能性のある単語、フレーズ、または URL リンクを含む投稿をブロックまたは制限するのに役立つもう一つの優れた機能です。

スパマーが投稿で頻繁に同じ種類のテキストを使用している場合は、サイトに「Blocked(ブロック)」または「Silence(サイレンス)」ワードを追加することを検討してください。

ウォッチドワードのより高度な使用法として、ウォッチドワードでの正規表現の使用も検討してください。

信頼レベル要件の引き上げ

スパムが主に TL0 ユーザーから来ている場合は、TL1 に到達しにくくするために、いくつかの信頼レベル設定を調整することも検討してください:

hCaptcha プラグイン

Discourse hCaptcha プラグインは、ローカルサインアップフォームに hCaptcha を統合することで、セキュリティとボット保護を強化することを目的としています。

:sparkles: すべての Discourse ホスト型サイトでは、このプラグインが自動的に含まれています。

追加の対策

ユーザーがなぜあなたのサイトをスパムしているのかを理解することは重要です。彼らは退屈しているのでしょうか、悪意があるのでしょうか、それとも自己宣伝をしているのでしょうか?

困難なユーザーへの対処方法や、その他のモデレーショントピックに関する提案は、Discourse モデレーションガイドに記載されていますので、サイトのモデレーションに関する追加のアイデアを得るために、このガイドを読んでみることをお勧めします。

上記以外の対策として、短期的にモデレーションチームを増員し、フルカバレッジを確保することも、スパムに対抗するための良いアプローチです。重要なのは、問題のあるユーザーを疲れさせ、退屈させて去らせることです。

このガイドを踏まえても継続的にスパムの問題に直面している場合は、approve post countapprove unless allowed groups、または approve new topics unless allowed groups 設定を使用して、新規ユーザーからのすべての投稿、または一部の投稿をレビューキューに入れることも検討してください:

approve unless allowed groups 設定は、指定されたグループに属さないユーザーが作成した投稿の承認を必要とします。管理者やモデレーターが作成した投稿は常に承認されます。

approve new topics unless allowed groups 設定は、指定されたグループに属さないユーザーが作成した新規トピックの承認を必要とします。管理者やモデレーターが作成したトピックは常に承認されます。

ただし、投稿が承認されない場合、新規ユーザーがサイトとのやり取りを開始することが困難になる可能性があるため、これを処理するのに十分な数のモデレーターが手元にいることを確認することが重要です。

「いいね!」 18

すべてのフォーラムについて話すことはできませんが、私が以前TL3だったフォーラムでは、その日の最初に監視カテゴリにログインしたときに、少なくとも1つのスパム投稿がまだありました。そして、私が現在モデレーターを務めているフォーラムでは、1日あたり平均2件程度のスパム投稿があります。そのため、それに基づいて多くのフォーラムでスパムがある程度一般的だと思います。

「いいね!」 5

非常に便利な正規表現の1つは \\d{3}-\\d{4}|[\\w+\\-.]+@[a-z\\d\\-]+(\\.[a-z\\d\\-]+)*\\.[a-z]+ で、これは電子メールアドレスと電話番号をブロックします。設定 - posting - 「watched words regular expressions」を有効にすることを忘れないでください。

「いいね!」 7

こんにちは :wave:

フォーラムでこれらのヒントを大いに活用させていただいています。ありがとうございます!:heart:

たとえば gmail.com ドメインからサインアップする新規ユーザーのみをレビューキューに送信する設定を有効にすることはできますか?

現在、すべての新規ユーザーをレビューキューに送信していますが、スパムユーザーの大多数が Gmail メールを使用して作成されていることがわかりました。それらのみをレビューキューに送信することで、少なくとも私にとっては負荷とレビュー時間を削減できます :sweat_smile:

「いいね!」 1

@SaraDev これが可能かどうかご存知ですか?IPだけでなく特定のドメインもブロックできると非常に役立つので、私も知りたいです!

「いいね!」 1

特定のドメイン(例:gmail.com)からの投稿のみをレビューキューに送信するコアなDiscourse機能はありません。

最も近い関連機能は、auto approve email domains(メールドメインの自動承認)サイト設定で、特定のメールドメインからのユーザーを自動的に承認することで、手動のユーザー承認プロセスをバイパスできます。

また、blocked email domains(ブロックされたメールドメイン)およびallowed email domains(許可されたメールドメイン)の設定もあり、メールドメインに基づいてサイトに登録できるユーザーを制限または制御する方法を提供します。

ただし、これらの設定はすべてmust approve users(ユーザーを承認する必要がある)設定が有効になっている必要があり、サイトに最初に登録するユーザーにのみ影響し、投稿の作成とレビューキュー間のやり取りには影響しません。

回避策として、Groups(グループ)を使用して同様の機能を実現できます。たとえば、カスタムグループを作成し、特定のメールアドレスで登録したユーザーを自動的にグループに追加し、このグループをapprove unless allowed groups(許可されたグループ以外は承認)およびapprove new topics unless allowed groups(許可されたグループ以外は新しいトピックを承認)設定に追加することができます。

このタイプのセットアップにより、必要に応じて他の投稿をレビューキューに送信したまま、特定のドメインを持つユーザーのレビューキューを効果的にバイパスできます。

「いいね!」 2

こんにちは、トピックや投稿の作成時にCAPTCHAを強制することは可能でしょうか?

わかりませんが、ボットがログイン時にキャプチャをバイパスできると、公開時にも同じことができるということでしょうか?

確かに、登録にはCAPTCHAサポートがあるようですが、トピック/投稿の作成にも同様のものが存在するかどうか疑問に思っていました。

最近、多くのクライアントが大規模なスパム攻撃を受けており、それらに共通していたのは、create のカテゴリを everyone に開放していたことです。これにより、すべての信頼レベルの制限がバイパスされていました。

経験豊富な Discourse 管理者にとっては明白なことですが、経験の浅い人々にとってはそうではありません。そのため、私たちにとって明白なことを明記し、トピックの最初の投稿に追加するのが良いかもしれません。

「いいね!」 7

最近、自動登録を利用して、あたかもアドバイスを求める正規のリクエストのように見せかけながら、Amazonアソシエイトリンクを含んだAI生成コンテンツで新しいトピックを作成するスパマーに対処しています。彼らは通常、さまざまなURL短縮エンジンでそれらのリンクを隠しています。彼らは返信に対応でき、さらには面白い方法でプライベートメッセージでチャットすることもできます。誰かこのような経験をしたことがありますか?これらの試みは完全に自動化されているように見えるため、他の多くのターゲットとなるDiscourseフォーラムがあるのではないかと思います。彼らを切り捨てるための戦略について何かアドバイスはありますか?

「いいね!」 1

こんにちは @Overgrow

これを防ぐために試せるアイデアをいくつかご紹介します。

  • Discourse AI - AI triage を使用して、コミュニティでスパム検出を設定し、この種のコンテンツを検出します。
  • URL短縮サービスやAmazonアフィリエイトリンクのパターンを、ブロックする watched words リストに追加します。
  • newuser spam host threshold を下げ、TL1 の要件を増やします。
  • max new accounts per registration IP を減らし、flag sockpuppets を有効にします。
  • Discourse hCaptcha プラグインを使用して、サイトでの自動スパム/AI登録を防ぎます。
  • 攻撃が収まるまで、すべての新規ユーザーコンテンツをレビューキューに配置することを検討します。以下の設定を調整してください。
    • approve post count
    • approve unless trust level
    • approve new topics unless trust level

ここでのアプローチは、一般的なスパム防止と同様ですが、特に短縮URLとAI生成コンテンツに焦点を当てます。

今回のケースでは、以下のようなAIコンテンツを特定するためのAIプロンプトを使用できます。

あなたはスパム検出システムです。以下のコンテンツとコンテキストを分析してください。

注:
- 返信は、ディスカッションスレッドに関連性を保ってください。
- コンテンツが無関係、宣伝目的、または自動化されている場合は、SPAMとしてマークしてください。
- リンクを含む新規ユーザーの投稿は、トピックに明示的に関連していない限り、潜在的なSPAMと見なしてください。

本物のように見えるが、不自然なパターンを持つコンテンツに注意してください。
奇妙な言い回し、過度にフォーマルな言葉遣いとカジュアルな言葉遣いの混在、または文脈に合わない一般的なアドバイスを探してください。
アフィリエイトリンクを隠しているコンテンツ、特に製品推奨に自然に誘導するように設計されているように見える投稿にフラグを立ててください。

これらのレッドフラグに特に注意してください:
1. 正規のアドバイス要求を装っているが、宣伝要素が含まれているコンテンツ
2. 問題を提示し、特定の製品を解決策として提案する投稿
3. アフィリエイトリンクを偽装する可能性のあるURL短縮サービス(bit.ly、tinyurl、t.co、goo.glなど)の存在
4. Amazonの製品リンクまたは参照、特にアフィリエイトパラメータ(tag=、ref=、affiliate=)が付いているもの
5. 推奨を求めているように見えるが、巧妙に特定の製品に誘導するコンテンツ
6. 人工的な品質のテキスト - 過度にフォーマルな言葉遣いとカジュアルな表現または不 awkward な構造の混在
7. 上記のパターンのいずれかを持つコンテンツを投稿する新規アカウント

「SPAM」または「NOT SPAM」のみで応答してください。
「いいね!」 3

最近、ボットアカウントに非常に悩まされています。2度目の新規ユーザー登録無効化が必要になりました。昨日、約30件のスパム投稿をしたボットアカウントを50件以上削除しなければなりませんでした。すでに難解なパズル付きのhcaptchaを有効にしましたが、それでも止まりません。3.5.0を使用していましたが、攻撃直後に3.6.0にアップデートしました。すでにトラストレベル0ではリンクを許可せず、リンクを許可するには30件の投稿が必要ですが、これらの投稿は旅行代理店に関する長文やその他の無意味な内容ばかりです。AIアカウントや、実際のフォーラムコンテンツを参照しているものの、意味が通じない投稿もありました。これらはユーザーベースにとって多少面白いものですが、とにかく、フォーラムでAIを有効にしたくはありませんでしたが、他のすべての選択肢を使い果たしたと感じています。しかし、このメッセージが表示されます。

しかし、その設定を追加する場所が見当たりません。

何よりも、AIはスパムの助けになるかもしれませんが、そもそもボットアカウントが作成されるのを防ぐのに役立つとは思いませんが、それは間違っていますか?

「いいね!」 1

approve post count が 1 に設定されている場合、これらを変更する必要はありますか?

正直なところ、その質問の答えはわかりません。

はい、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 は一時的です。ユーザーがカウントのしきい値に達すると、自由に投稿できるようになります。
  • 「unless allowed groups」設定は継続的です。指定されたグループに属していないユーザーのすべての投稿/トピックに適用され、投稿数に関係なく適用されます。

サイトでの投稿をより細かく制御するために設定を組み合わせることもできます。たとえば、次のようになります。

  • approve_post_count: 1 を使用して、新しいユーザー(TL0/TL1)の最初の投稿を確認します。
  • approve_unless_allowed_groups 設定を使用して、特定のグループ(例:TL2以上のメンバー)を除くすべてのユーザーに対して継続的なモデレーションを行います。

これにより、新しいユーザーは最初にモデレートされ、継続的に承認なしで投稿できるユーザーを制御するアプローチが作成されます。