Браузеру — нет, серверу — да. По умолчанию, когда браузер отправляет запрос к тому же источнику, что и страница, содержащая ссылку, он включает заголовок referrer, чтобы сообщить серверу, откуда он пришел. Сервер может использовать эту информацию для управления поведением, включая разрешение или запрет доступа к определенным ресурсам.
Обойти это легко, но такой механизм предотвращает случайные ссылки с других сайтов.
location /uploads/ {
valid_referers www.example.com;
if ($invalid_referer) {
return 403;
}
}
Замена www.example.com в приведенном выше коде на домен вашего экземпляра Discourse должна стать подходящей конфигурацией nginx для предотвращения хотлинкинга к загрузкам на вашем экземпляре.
Возможно, вы захотите сделать что-то иное, чем возврат 403 (запрещено). Например, вы можете перенаправлять пользователей на главную страницу вашего экземпляра Discourse. Для этого можно использовать следующий код:
location /uploads/ {
valid_referers www.example.com;
if ($invalid_referer) {
return 307 /;
}
}
Должна существовать возможность добавить что-то в ваш файл app.yml для внедрения этой конфигурации при пересборке. Однако я не уверен, как это сделать, так как не изучал этот вопрос подробно.