# 私信附件可被未认证用户访问（缺少认证检查）

**URL:** https://meta.discourse.org/t/personal-message-attachments-accessible-to-unauthenticated-users-missing-auth-check/373355
**Category:** Support
**Tags:** secure-uploads, personal-messages
**Created:** [2025年七月8日 10:53 UTC](https://meta.discourse.org/t/personal-message-attachments-accessible-to-unauthenticated-users-missing-auth-check/373355 "2025-07-08T10:53:22Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Evie\_Tao](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/evie_tao/32/487964_2.png) [@Evie\_Tao](https://meta.discourse.org/u/Evie_Tao)
#### Post date: [2025年七月8日 10:53 UTC](https://meta.discourse.org/t/personal-message-attachments-accessible-to-unauthenticated-users-missing-auth-check/373355/1 "2025-07-08T10:53:22Z")

</div>

## 问题描述

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

### 详细信息

- 上传 API：/uploads.json

- 访问 URL：/uploads/default/original/1X/{file\_name}

- 复现步骤：

### 安全顾虑

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

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

### 问题

- 这是当前 Discourse 实现的预期行为吗？

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

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

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

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

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [2025年七月8日 11:33 UTC](https://meta.discourse.org/t/personal-message-attachments-accessible-to-unauthenticated-users-missing-auth-check/373355/3 "2025-07-08T11:33:38Z")

</div>

值得关注：

> [@Secure Uploads](https://meta.discourse.org/t/secure-uploads/meta/140017?u=merefield):
>
> Added in the [Discourse 2.4 release](https://meta.discourse.org/t/discourse-version-2-4/108194) in February is the Secure Uploads feature, which provides a higher degree of security for ALL uploads (images, video, audio, text, pdfs, zips, and others) within a Discourse instance. Prerequisites You must have S3 uploads enabled on your site, which needs the following settings to be filled: S3 access key id S3 secret access key S3 region S3 upload bucket You also must be using an S3 bucket that does not have a Public bucket policy, and you need to make su…
