# Disallow anonymous users from viewing image & file URLs

**URL:** https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335
**Category:** Feature
**Created:** [29.Февраль.2016 15:55:44 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335 "2016-02-29T15:55:44Z")
**Posts on this page:** 14
**Page:** 2

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [08.Ноябрь.2017 08:57:49 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/21 "2017-11-08T08:57:49Z")

</div>

Замечательно!

@mbcahyono, не мог бы ты создать новую тему для плагина в канале #Customization > Plugin?

---

<div class="post-metadata">

### Author: ![chrisc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chrisc/32/119982_2.png) [@chrisc](https://meta.discourse.org/u/chrisc)
#### Post date: [18.Январь.2019 08:28:52 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/22 "2019-01-18T08:28:52Z")

</div>

The [Discourse Images Guardian](https://github.com/muhlisbc/discourse-images-guardian) plugin [no longer works with the latest Discourse beta](https://meta.discourse.org/t/upgrade-to-beta8-deletes-all-icons/106610/55) — you can’t set a URL for the logos any more so all images now require authentication, this results in the site logos returning 404’s for non-authenticated users, I have [opened an issue for this on GitHub](https://github.com/muhlisbc/discourse-images-guardian/issues/1) to see if we can find a way to solve this.

---

<div class="post-metadata">

### Author: ![chrisc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chrisc/32/119982_2.png) [@chrisc](https://meta.discourse.org/u/chrisc)
#### Post date: [07.Февраль.2019 11:22:33 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/23 "2019-02-07T11:22:33Z")

</div>

The [Discourse Images Guardian](https://github.com/muhlisbc/discourse-images-guardian) has been updated by @mbcahyono so it now works with the latest Discourse beta, I have deployed it to a couple of servers running v2.3.0.beta1 🙂.

---

<div class="post-metadata">

### Author: ![chrisc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chrisc/32/119982_2.png) [@chrisc](https://meta.discourse.org/u/chrisc)
#### Post date: [14.Март.2019 10:02:01 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/24 "2019-03-14T10:02:01Z")

</div>

The [Discourse Images Guardian plugin](https://github.com/muhlisbc/discourse-images-guardian) doesn’t currently work with the latest Discourse v2.3.0.beta5, I have had to disable it on a couple of sites. I have raised [an issue for this on GitHub](https://github.com/muhlisbc/discourse-images-guardian/issues/3) and hopefully @mbcahyono will have a suggestion for a fix for this soon.

---

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [18.Ноябрь.2019 03:10:31 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/25 "2019-11-18T03:10:31Z")

</div>

Сегодня мы начали внутреннее тестирование новой настройки «Безопасные медиа», которая доступна только при включённой загрузке в S3. Вот что она делает:

- Для экземпляров Discourse с включённой настройкой «Требуется вход» все загрузки считаются безопасными, но если эта настройка отключена, безопасными считаются только загрузки в личных сообщениях.
- Все URL-адреса безопасно загруженных медиафайлов в постах и личных сообщениях больше не указывают напрямую на файл, а проходят через конечную точку, которая сначала определяет доступ к медиа на основе настроек сайта.
- Безопасные медиа в письмах заменяются текстом-заполнителем, который предлагает пользователям войти в экземпляр Discourse для просмотра медиа.
- Если загрузка ранее использовалась в безопасном контексте, публикация той же загрузки в публичной теме не допускается.

В настоящее время эта настройка доступна только для самостоятельно размещённых экземпляров Discourse. Мы предоставим дополнительные обновления после завершения внутренних испытаний.

---

<div class="post-metadata">

### Author: ![sloweclair](https://avatars.discourse-cdn.com/v4/letter/s/9d8465/32.png) [@sloweclair](https://meta.discourse.org/u/sloweclair)
#### Post date: [26.Ноябрь.2019 17:36:22 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/26 "2019-11-26T17:36:22Z")

</div>

Каковы недостатки этого? Влияет ли это на производительность?

---

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [26.Ноябрь.2019 23:44:37 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/27 "2019-11-26T23:44:37Z")

</div>

URL для медиафайлов в сообщениях/личных сообщениях просто заменяется на URL сервера Discourse, который затем предоставляет закрытый URL S3 для загрузки.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [27.Ноябрь.2019 02:07:04 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/28 "2019-11-27T02:07:04Z")

</div>

Просто для уточнения.

Недостаток в том, что для приватного контента больше нельзя использовать CDN: каждый запрос изображения или загрузка должны «проходить» через приложение, чтобы разблокировать бакет для пользователя.

На небольших внутренних форумах вы, скорее всего, ничего не заметите. На крупных форумах, требующих входа в систему, отказ от CDN и маршрутизация запросов через приложение могут оказать определённое влияние.

---

<div class="post-metadata">

### Author: ![chrisc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chrisc/32/119982_2.png) [@chrisc](https://meta.discourse.org/u/chrisc)
#### Post date: [28.Март.2025 09:08:56 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/29 "2025-03-28T09:08:56Z")

</div>

Плагин Image Guardian не работает с последней версией Discourse. Я создал соответствующий запрос в GitHub:

> <https://github.com/muhlisbc/discourse-images-guardian/issues/4>
>
> The \[latest Discourse\](https://meta.discourse.org/t/3-5-0-beta2-review-queue-wel…come-banner-admin-interface-and-more/358151) doesn't work with this plugin with these settings in \`containers/app.yml\`:
> 
> \`\`\`yaml
> hooks:
> after\_code:
> - exec:
> cd: $home/plugins
> cmd:
> - git clone https://github.com/muhlisbc/discourse-images-guardian.git
> - erb /var/www/discourse/plugins/discourse-images-guardian/nginx.sample.conf.erb
> \> /var/www/discourse/config/nginx.sample.conf
> \`\`\`
> 
> Rebuilding the container fails with:
> 
> \`\`\`
> \*\* INCOMPATIBLE PLUGIN \*\*
> 
> You are unable to start Discourse due to errors in the plugin at
> /var/www/discourse/plugins/discourse-images-guardian
> 
> Please try removing this plugin and rebuilding again!
> \`\`\`
> 
> I did look at using the \[Secure uploads\](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/24) option, but this only works with uploads going to S3:
> 
> !\[Image\](https://github.com/user-attachments/assets/e2713a1c-19e2-439c-b277-f29cbd3eb485)
> 
> Is there any chance the plugin could be made to work again @muhlisbc ? Thanks!

Я рассматривал вариант использования опции «Безопасная загрузка», но она требует использования S3, что в данном случае на форуме не применимо. Поэтому плагин всё ещё необходим, и надеюсь, что @mbcahyono сможет решить эту проблему… 🤞

---

<div class="post-metadata">

### Author: ![mbcahyono](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mbcahyono/32/97721_2.png) [@mbcahyono](https://meta.discourse.org/u/mbcahyono)
#### Post date: [01.Апрель.2025 12:07:32 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/30 "2025-04-01T12:07:32Z")

</div>

@chrisc У нас сейчас праздничный сезон, поэтому я проверю это на следующей неделе 🙂

---

<div class="post-metadata">

### Author: ![chrisc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chrisc/32/119982_2.png) [@chrisc](https://meta.discourse.org/u/chrisc)
#### Post date: [01.Апрель.2025 16:06:18 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/31 "2025-04-01T16:06:18Z")

</div>

Это потрясающе, спасибо @mbcahyono, счастливых праздников! 🙂

---

<div class="post-metadata">

### Author: ![mbcahyono](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mbcahyono/32/97721_2.png) [@mbcahyono](https://meta.discourse.org/u/mbcahyono)
#### Post date: [13.Апрель.2025 12:04:33 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/32 "2025-04-13T12:04:33Z")

</div>

@chrisc

> <https://github.com/muhlisbc/discourse-images-guardian/commit/286734e41b64cc1498b92bb5db2ac4e5711f0fd0>

Это должно исправить ошибку пересборки. Хотя у меня пока не было возможности протестировать саму функциональность.

---

<div class="post-metadata">

### Author: ![chrisc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chrisc/32/119982_2.png) [@chrisc](https://meta.discourse.org/u/chrisc)
#### Post date: [13.Апрель.2025 12:48:37 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/33 "2025-04-13T12:48:37Z")

</div>

Это великолепно, @mbcahyono! Я установил и протестировал — всё отлично 🙂 Спасибо ещё раз!

---

<div class="post-metadata">

### Author: ![chrisc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chrisc/32/119982_2.png) [@chrisc](https://meta.discourse.org/u/chrisc)
#### Post date: [14.Апрель.2025 10:31:50 UTC](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335/34 "2025-04-14T10:31:50Z")

</div>

@mbcahyono, возможно ли также защитить загруженные пользователями аватары, сделав просмотр изображений доступным только при наличии cookie?

Их URL-пути выглядят так: `/user_avatar/$DOMAIN_NAME/$USER_NAME/$NUNBER/$ANOTHER_NUMBER.png`.

[Предыдущая страница](https://meta.discourse.org/t/disallow-anonymous-users-from-viewing-image-file-urls/40335.md?page=1)
