Moderadores lendo mensagens nos Logs de Ação da Equipe

Estamos enfrentando um problema de privacidade com moderadores tendo acesso a mensagens às quais não deveriam ter acesso.

Pelo que pude constatar, o Discourse tem dois objetivos de design que entram em jogo aqui:

  1. Moderadores não estão isentos de verificações de permissão e só podem ler mensagens para as quais foram convidados.
  2. Quando moderadores usam seus poderes, qualquer ação que tomam é registrada e pode ser inspecionada por qualquer membro da equipe.

Às vezes, esses objetivos entram em conflito, por exemplo, quando um moderador edita a postagem de outro usuário em uma mensagem com eles. Nesses casos, o Discourse prioriza o :two:: a postagem do usuário editado é revelada a toda a equipe nos registros de ações da equipe.

Embora eu já discorde da decisão de priorizar o :two:, isso tem casos extremos que acredito serem definitivamente indesejáveis, beirando um bug. O maior que encontramos: moderadores atualmente podem ler cada mensagem que contém um link para uma imagem externa, porque o @system baixa a imagem, edita a postagem e isso é adicionado aos registros de ações da equipe.

Não tenho certeza de qual é o caminho certo a seguir aqui. Tornar o acesso ao registro de ações da equipe para moderadores configurável? Não permitir a visualização da postagem para entradas de registro de ações da equipe do @system? Fazer com que o recurso de visualizar postagem respeite geralmente as permissões da postagem?

De qualquer forma, espero que algo possa mudar aqui, porque estamos sendo forçados a bloquear o acesso à API de registro de ações da equipe no nível do Nginx.

9 curtidas

Acho que essas edições não deveriam ser registradas.

@david, você pode garantir que não registraremos essas edições muito específicas do usuário @system? (e remover as existentes)

10 curtidas

Isso foi feito em FIX: Do not log 'pull_hotlinked_images' edits in the staff action log · discourse/discourse@67a9894 · GitHub.

Observe que os moderadores ainda podem ver os registros de mensagens privadas editadas por alguém que não seja o autor.

Isso é complicado de automatizar — não temos como saber se os registros existentes são de “pull de imagens hotlinked” ou foram editados como usuário do sistema via API. @fefrei, se quiser apagar os registros antigos de todas as edições do sistema no seu site, você pode executar algo assim no console:

UserHistory.where(action: UserHistory.actions[:post_edit], acting_user: Discourse.system_user).destroy_all
9 curtidas

Ótimo, obrigado! :heart:

5 curtidas