スタッフ行動ログでモデレーターがメッセージを読んでいる

モデレーターがアクセスしてはいけないメッセージにアクセスできるというプライバシーの問題が発生しています。

私の理解では、Discourse にはここで問題となる 2 つの設計目標があります。

  1. モデレーターは権限チェックから除外されず、招待されたメッセージのみを読むことができます。
  2. モデレーターが権限を行使する際、その行動はすべてログに記録され、すべてのスタッフメンバーが確認できます。

時には、これらが衝突することがあります。例えば、モデレーターが他のユーザーの投稿をメッセージ内で編集する場合などです。このような場合、Discourse は :two: を優先します。つまり、編集されたユーザーの投稿がスタッフアクションログを通じてすべてのスタッフに公開されてしまいます。

私はすでに :two: を優先するこの決定には反対していますが、これは望ましくない極端なケースを生み出しており、Contribute > Bug に近い問題です。私たちが発見した最大のケースは、モデレーターが外部画像へのリンクを含むすべてのメッセージを読むことができるという点です。これは、@system が画像をダウンロードして投稿を編集し、それがスタッフアクションログに追加されるためです。

ここで適切な対応策が何であるか確信が持てません。スタッフアクションログへのモデレーターのアクセスを設定可能にするべきでしょうか?@system からのスタッフアクションログエントリに対して投稿の表示を許可しないようにすべきでしょうか?それとも、投稿表示機能を一般的に投稿の権限を尊重するようにすべきでしょうか?

いずれにせよ、何か変更が行われることを願っています。なぜなら、私たちは現在、Nginx レベルでスタッフアクションログ API へのアクセスをブロックせざるを得ない状況だからです。

「いいね!」 9

そのような編集はログに記録されるべきではないと思います。

@david @system ユーザーからの非常に特定の編集がログに記録されないようにしてください(既存のものも削除してください)。

「いいね!」 10

これは FIX: Do not log 'pull_hotlinked_images' edits in the staff action log · discourse/discourse@67a9894 · GitHub で対応済みです。

なお、モデレーターは、投稿者以外が編集したプライベートメッセージのログは引き続き確認できます。

これは自動化が難しい問題です。既存のログが「ホットリンク画像の取得」によるものか、システムユーザーとして API を介して編集されたものかを判別する方法がありません。@fefrei もしあなたのサイト上のすべてのシステム編集に関する古いログを削除したい場合は、コンソールで以下のようなコマンドを実行してください。

UserHistory.where(action: UserHistory.actions[:post_edit], acting_user: Discourse.system_user).destroy_all
「いいね!」 9

ありがとうございます! :heart:

「いいね!」 5