未認証ユーザーによるトピック作成を無効化

こんにちは。スパムアカウントの対処に困っています。ローカルアカウントを通じて作成されています。スパムアカウントを調べると、プライマリメールが「未検証」と表示されます。メールを検証するまで、新しいトピックを作成できないように、このようなアカウントを無効にしたいのですが、どうすれば実現できますか?

この設定が未認証ユーザーの削除に役立つかどうかわかりません

purge_unactivated_users_grace_period_days

これを0に設定すると、未認証ユーザーは永久に許可されるのでしょうか?これは、このフィールドの目的とは全く逆のように思えます。

メールが認証されていない場合、投稿を許可されるべきではありません。それらはステージングされたユーザーですか?(つまり、匿名のユーザーにメールで投稿することを許可していますか?)

「いいね!」 3

匿名ユーザーからのメール送信を許可しているということですか?

これをどうやって確認すればよいでしょうか?「ステージングユーザーを有効にする」という設定があり、「メール受信時にステージングユーザーを自動作成する」と書かれており、チェックが入っています。これについて尋ねていますか?

これが現在、スパムアカウントの権限がどのようになっているかです。

それはステージングされたユーザーのようには見えません。

アカウントが有効化されていない状態で、どのように人々があなたのサイトにログインしているのか分かりません。特別なログイン方法を使用していますか?

「いいね!」 2

「特別なログイン方法がありますか?」

ローカルログインとGoogle OAuthの2つの方法のみです。彼はGoogleを使用していないと確信しています。彼のドメインはGmailの下ではありません。

私と同じような問題の別のスレッドがあるようです。

そのスレッドで進捗があったかどうかはわかりません。

ああ、それはPMでさらに話し合いました。それは、SSOがDiscourseに渡す前にメールを検証していなかったためでした。

「いいね!」 1

この問題の根本原因を特定するには、さらにどのように進めればよいですか?DMで連絡(または誰かに連絡)すればよいですか?

いいえ、他の人がアイデアがあれば意見を述べられるように、公開トピックにするのが最善です。:+1:

残念ながら、他に思いつくアイデアはあまりありません。投稿後に誰かがアカウントを無効にしたのでしょうか?(スタッフのアクションログで「ユーザーを無効化」を確認できます)

「いいね!」 1

はい、そのアカウントがスパムトピックを作成したのを確認した後、そのアカウントを無効にしました。nginx の access.log にも、このユーザーからの新しいトピックアクティビティは表示されませんでした。この人物が Web インターフェイスを使用せずに新しいトピックを作成できた方法が本当にわかりません。Web インターフェイス以外のトピック作成方法があるはずなので、ここで助けを求めています。

アカウントを無効にしたのであれば、メールが未認証であることの説明がつきます(メールの再認証が必要なのは無効化の一部です)。

「いいね!」 1

いいえ、アカウントが最初に未認証のメールでスパムトピックを投稿したため、そのアカウントを無効にしました。

話が噛み合っていないようです。:slight_smile: 「サイレント」や「一時停止」ではなく、具体的に「非アクティブ化」を意味しています。

スタッフのアクションログを確認しましたか?

「いいね!」 1

申し訳ありません。そのスパムトピックの後、アカウントを silenced(ミュート)および suspended(一時停止)したと言いたかったのです。

アカウントを無効化しなかった場合、通常のメール認証手順をどのように回避できたのかを解明する必要があると思います。これまでの説明からは、それがどのように可能だったのか分かりません。

ローカルでのサインアップはアカウントを有効化するためのメールを送信し、それによってメールが認証されます。Googleを使用したサインアップでも同様にメールが認証されます。

「いいね!」 3

nginxログ以外に、何か手がかりとなるログはありますか?

思いつく限りではありません。サイトのモデレーター/管理者はお一人だけですか?

私はそのウェブサイトの管理者ですが、何が起こっているのかを確認しようとしているだけで、ボックスがどこで実行されているのかさえわからず、sshアクセスもありません。

一方、奇妙なことに、「system」として誰かがログインし、「Test」アカウントを作成してすぐに削除したのを見ました。

discourse-1

管理者に、誰かがシステムアカウントとしてログインしてテストアカウントを作成したかどうか尋ねましたが、まだ返信がありません。もし彼らがその時誰もシステムとしてログインしなかったと言った場合、そのボックスは侵害されたように見えます。

この場合、メール認証をバイパスしてdb経由でユーザーアカウントを作成できますか?dbログでそれらのアクティビティを確認できますか?

これは、ユーザーがプロファイルで削除ボタンを使用したときにログに表示されると思います。

「いいね!」 2

ユーザーがプロフィールからアカウントを削除した場合、ログのユーザーフィールドには system と表示されますか?ユーザーフィールドには「Test」と表示されるべきですよね?何か怪しい点があります。