Descrição do Problema
Durante uma revisão de segurança em nossa implantação personalizada do Discourse, descobrimos um risco potencial de esgotamento de recursos relacionado à API de upload de arquivos.
Detalhes
-
API de Upload: /uploads.json
-
Problema: Não há limitação de taxa aparente neste endpoint. Qualquer usuário autenticado pode fazer upload rápido de um grande número de arquivos.
-
Reprodução:
-
Automatizando requisições, um usuário pode enviar milhares de requisições de upload em um curto período.
-
Verificamos que, após enviar milhares de requisições de upload, o diretório de armazenamento contém milhares de arquivos.
-
Impacto na Segurança/Recursos
-
Atacantes ou mesmo usuários normais podem esgotar o armazenamento do servidor, degradar o desempenho ou acionar problemas operacionais ao fazer upload de um número massivo de arquivos.
-
Isso poderia ser potencialmente abusado para negação de serviço ou para aumentar os custos de armazenamento inesperadamente.
Perguntas
-
Existe alguma limitação de taxa integrada ou prevenção de abuso para o endpoint /uploads.json no Discourse?
-
Existem configurações ou plugins recomendados para restringir a frequência de upload do usuário ou o uso total de armazenamento por usuário?
-
Existem práticas recomendadas para prevenir o esgotamento de recursos causado por uploads de arquivos em implantações do Discourse?
Obrigado pela sua atenção e conselho!