私信附件可被未认证用户访问(缺少认证检查)

问题描述

在我们对定制的 Discourse 论坛进行安全评估期间,我们发现了一个潜在的身份验证问题,该问题影响了在私信中上传的图片附件。

详细信息

  • 上传 API:/uploads.json

  • 访问 URL:/uploads/default/original/1X/{file_name}

  • 复现步骤:

    1. 用户在私信中上传图片(设置 for_private_message=true)。

    2. 生成的图片可以通过直接链接被任何第三方访问(包括未登录用户或隐身模式下的用户)。

安全顾虑

  • 私信中上传的图片应被视为机密信息,仅供对话参与者访问。

  • 然而,根据目前的实现方式,任何拥有直接 URL 的人都可以下载这些文件,而无需进行身份验证或授权。

问题

  • 这是当前 Discourse 实现的预期行为吗?

  • 是否有推荐的设置或插件来确保私信附件得到妥善保护,并且只能由授权用户查看?

  • 此问题是否已在上游 Discourse 项目中讨论或解决?

  • 在 Discourse 部署中保护私密上传的最佳实践是什么?

感谢您对此重要安全问题的帮助和建议!

值得关注:

1 个赞