Usuários fora dos grupos permitidos de postagens de mídia incorporada podem ignorar a restrição de upload copiando o link da imagem carregada

Passos para Reproduzir

  1. Defina Newuser max embedded media = 0
  • Isso impede corretamente que novos usuários façam upload de imagens antes de enviá-las :white_check_mark:
  1. Configure Embedded media post allowed groups
  • Exclua certos grupos da lista de permissões
  • Quando um usuário não nos grupos permitidos faz o upload de uma imagem:
    • A imagem pode aparecer no editor
    • Somente ao enviar a postagem ela é bloqueada :cross_mark:
  1. Problema
  • Durante a edição, o usuário pode copiar o link da imagem enviada para contornar a restrição de upload e publicá-la

Comportamento Esperado

Nosso objetivo é impedir que os usuários façam upload de imagens. Usuários que não estão nos grupos permitidos não devem conseguir inserir nenhuma mídia incorporada no editor — o upload deve ser bloqueado no momento do upload, assim como quando Newuser max embedded media = 0 é aplicado.

Caso contrário, eles podem copiar o link da imagem enviada e efetivamente contornar a restrição para enviá-la.

Não sei se este é um problema novo, mas nós também acabamos de notar:

Parece que o upload da imagem para o bucket S3 (cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com) acontece assim que a imagem é colada. A verificação de incorporação (embed check) só ocorre quando a postagem é enviada, mas nesse momento a imagem já existe no bucket e pode ser vinculada por qualquer um dos seguintes:

  • Seu URL S3
  • Seu URL curto do Discourse
  • Seu URL gerado upload:// (ou seja, simplesmente removendo o ! do início do código de incorporação de upload gerado automaticamente)

Estou preocupado que isso signifique que até mesmo as incorporações falhas (ou seja, uploads tentados que foram subsequentemente negados) foram carregadas no bucket e estão secretamente contando para a cota de armazenamento do site mesmo que o remetente tenha pensado que foi negado e mais ninguém possa ver o upload.

Infelizmente, este bug parece ter permanecido sem correção por um bom tempo.