版主正在阅读员工操作日志中的消息

我们遇到了一个隐私问题:版主能够访问他们本不应访问的消息。

据我所知,Discourse 在此涉及两个设计目标:

  1. 版主不受权限检查豁免,只能阅读他们被邀请加入的消息。
  2. 当版主使用其权限时,他们所采取的任何操作都会被记录,并且任何工作人员成员都可以检查这些日志。

有时,这两个目标会发生冲突,例如当版主在包含用户消息的帖子中编辑另一位用户的帖子时。在这种情况下,Discourse 会优先考虑目标 2:被编辑用户的帖子会向所有工作人员在工作人员操作日志中显示。

虽然我本人并不认同优先选择目标 2 的决定,但这种情况确实存在一些我认为绝对不可取的边缘案例,甚至接近一个#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 个赞