現状、スパムユーザーとその投稿を削除する際にボトルネックが発生しています。
ユーザーを削除する前に、まずそのユーザーのすべての投稿を手動で削除し、ブラウザを開いたままその処理が完了するのを待ってから、ユーザーを削除する必要があります。
サーバーに最新の Xeon CPU が 16 基搭載されていても、一度に処理できるのは 2〜3 件までで、それ以上だとエラーになります。1 件あたり数分かかり、現在非常に手間のかかる遅いプロセスとなっています。
個人的には、すべての投稿を先に削除する必要のない「スパマーを削除/ユーザーを破棄」オプションが最も理想的だと考えます。これにより、投稿の削除とユーザーの削除というジョブがバックグラウンドでキューイングされ、処理されます。こうすれば、モデレーションを迅速に行え、処理はバックグラウンドでオーバーロードすることなく実行できます。
別の選択肢として、投稿を削除する前にユーザーを削除し、定期的に孤立した投稿を検索して削除する cron ジョブを実行する方法もあります。この方が、孤立した投稿に関する問題全体を解決できるため、より好ましいかもしれません。
また、スレッド内にあるユーザーカードからこれらのオプション(一時停止、沈黙、削除/破棄)を利用できれば、ユーザープロフィールや管理ページに移動する必要がなくなるため、非常に時間短縮になるでしょう。
「いいね!」 3
これらのスパマーは特定の単語やフレーズを使用していますか?
監視単語リストに追加して、スパムが公開されるのを防げます。
スパマーのアカウントを手間なく削除できるよう、以下の設定を一時的に調整できます:delete_user_max_post_age と delete_all_posts_max。ただし、作業が完了したら必ずデフォルト値に戻してください。さもないと、ユーザーがスパムを投稿して自ら削除できてしまいます。
「いいね!」 4
@itsbhanusharma さんのご提案、ありがとうございます。
確かに特定のフレーズを使用していますが、Unicode 文字セットを用いることで簡単に回避できてしまいます(参照: https://meta.discourse.org/t/watched-words-improvement-similar-looking-unicode-characters/124864)。
上記の設定はすでに調整済みですが、ボトルネックとなっているのは、ユーザーと投稿の削除に非常に時間がかかっている点です。
「いいね!」 1
ご参考までに、サインアップオプションを制限するか、ユーザーに対して2段階認証(2FA)の強制導入を検討されてはいかがでしょうか。
「いいね!」 1
設定に深刻かつ根本的な問題があります。信頼レベル 0 の新規ユーザーは、
- セキュリティのためレート制限が厳しく設定されており、これほど多く投稿できない
- 通報された場合、コンテンツ削除から保護されていない
という状況です。
スパマーを削除するのは、デフォルトの Discourse 設定ではワンクリックで完了する操作です。以前からそうでした。
「いいね!」 2
率制限の設定について、失礼ながら私の設定に問題はないと思います。基本的にはデフォルト設定ですが、一部をデフォルトより厳しく調整しています。
新規ユーザー(トピック投稿と返信のみ)に対する率制限で確認されているのは以下の通りです:
- 初日のトピック最大数:デフォルトは 3 トピック - スパマーは最初の投稿から 24 時間待つだけで回避可能
- 初日の返信最大数:デフォルトは 10 返信 - スパマーは最初の投稿から 24 時間待つだけで回避可能
- 新規ユーザーのトピック作成率制限:デフォルトは投稿間隔 120 秒 / 1 日最大 720 トピック / 1 時間最大 30 トピック
- 新規ユーザーの投稿作成率制限:デフォルトは投稿間隔 30 秒 / 1 日最大 2880 投稿 / 1 時間最大 120 投稿
何か見落としている点があれば教えてください。できれば具体的にご指摘いただければ幸いです。
フラグが付けられた際、コンテンツ削除から保護されていない
delete_user_max_post_age と delete_all_posts_max を変更したため、この問題には直面していません。
スパマーの削除は、Discourse のデフォルト設定であればワンクリックで完了します。以前からそうです。
どの削除オプションを指していますか?私は主にユーザーの管理ページにあるオプションを使用しており、その場合、ユーザーを削除する前にすべての投稿を削除する必要があります。
レビューキューにある Akismet のユーザー削除オプションは、チームによってユーザーの投稿を削除しないことが確認されているため(Discourse Akismet - #10
ユーザープロフィールページの削除ボタンは、投稿やコンテンツがある場合、長い待機後に次のエラーを表示します。「そのユーザーの削除中にエラーが発生しました。ユーザーを削除する前に、すべての投稿を削除してください。」
フラグ > スパムである > スパマーを削除も同様のエラーを表示します。「そのユーザーの削除中にエラーが発生しました。ユーザーを削除する前に、すべての投稿を削除してください。」少し不規則ですが、投稿数が約 500 件のスパマーでは失敗しましたが、約 150 件のスパマーでは成功しました(それでもエラーメッセージは表示されました)。投稿が数件しかないアカウントでは正常に動作します。
いったいどうやってスパマーが500投稿に達したというのでしょうか? これは、Discourseのデフォルト設定を大幅に変更していることを意味します。なぜなら、新規ユーザーはTL0として投稿レート制限がかかるだけでなく、さらに初日の投稿数制限も課されるからです。
日時を含めたより具体的な情報を多数お聞かせください。私の印象では、これらのユーザーは登録後、おおむね正常に活動していたが、数週間経ってからスパマーと判断されたのではないかと思われます。これらのユーザーによる投稿例を10件提供していただけますか?
「いいね!」 3
@codinghorror
私のスレッドのタイトルを完全に書き換え、客観的に不正確な内容にすることはやめていただきたいです。
-
はい、スパマーは初日にスパムするだけではありません。これはフォーラムスパムの最も古い手口の一つで、後でスパムを行うためにアカウントを温めるために、初日に自己紹介や他の短く無害に見える投稿を行うものです(通常は手動承認を回避するため)。あるいは、単に最初の24時間以内に検出されなかっただけかもしれません。
-
TL0 の新規ユーザー(最初の投稿から24時間後)は、デフォルトで1日あたり2880件の投稿と720件のトピックに制限されています。もし間違っていたら教えてください。
-
スパマーは、‘unique posts mins’ 設定を回避するために、各投稿をユニークにするためにスピンナーを使用します。例えば、ランダムな絵文字、文字、数字などを追加します。
-
監視ワードは、異なる Unicode 文字セットを使用することで簡単に回避できます。Watched Words Improvement -- similar looking unicode characters
-
最初の投稿で高速タイピングするユーザーを自動沈黙させる機能も、簡単に回避可能であり、最初の投稿のみが対象です。
-
大量のプロキシプールを使用して、最小限のリソースでスパマーが大量のアカウントを作成するのは容易すぎます。古い Gmail のドットトリックを使用すると、標準的な Discourse インスタンス(Akismet を使用している場合でも)では完全にブロック不可能になります。あなたは、誰かがあなたのフォーラムをスパムする動機を持っているかどうかに依存している状態です。詳細はこちら:Protecting against gmail dot trick in Discourse および Suggestion: Wildcard Block Email Address
とにかく、Discourse をより強固にするという目的で、スパム対策の現場からの洞察を共有しています。スパム対策機能はここで実際にストレステストされています。
スパマーには主に2つの選択肢があります。複数のアカウントを作成してそれぞれで少しスパムするか、あるいは少ないアカウントでそれぞれに大量のスパムを行うかです。レート制限を厳しくすると、Gmail のドットトリックを使ってアカウントを作成することが非常に簡単でブロック不可能であるため、彼らは単にさらに多くのアカウントを作成して対応してきます。
また、キャッチオールメールを使用するカスタムドメインを使って、登録用の無制限のメールアドレスを持つこともできますが、これは私がそのドメインをブラックリストに追加するまでしか有効ではありません。これは効果的な防御策です。ただし、特定のメールドメインを使用するすべてのアカウントを削除して、事後に迅速かつ簡単に禁止することができれば非常に役立ちます。さらに、Gmail(およびそのすべてのバリエーション)でもこれが可能であればなお良いでしょう。
私が話しているのは、防御を突破したスパマーを背景でより迅速かつ効率的に処理できるようにすることです。また、十分な数の投稿を持つスパマーに対して「スパマーを削除」オプションが意図通りに機能するようにすることです。
正直に言って、あなたのサイトは病的に聞こえます。Discourse で実際にスパマーが 500 投稿に達した例を見たことがありませんし、ましてや 150 投稿などあり得ません。過去 5 年間で、私が自ら運営・管理しているサイトを含め、数千ものホストされたサイト全体を見渡しても、そのような事例はありません。思い浮かぶのは、もし興味があれば検索できる「bamwar」スパムだけです。
先ほど言及された具体的な詳細を共有していただけませんか?そうでなければ、ここでは誰もあなたを助けられないかもしれません。
つまり、あなたはスパマーのためにブラックハットなサイトを運営しているのでしょうか?
「いいね!」 3
以前このトピックを目にしました。現在も続いているかなり深刻な問題であり、ストレスも大きいこととお察しします。これが役立つかわかりません(投稿には役立つかもしれませんが、登録には役立たない可能性もあります)が、以下を試してみましたか?
admin/site_settings/category/posting?filter=Approve
-
approve post count(新規ユーザーまたはベーシックユーザーからの承認が必要な投稿数)
-
approve unless trust level(この信頼レベル未満のユーザーによる投稿は承認が必要)
-
approve new topics unless trust level(この信頼レベル未満のユーザーによる新規トピックは承認が必要)
「いいね!」 4