Le navigateur ne s’en soucie pas, mais le serveur le peut. Par défaut, lorsqu’un navigateur envoie une requête vers la même origine que la page contenant la référence, il inclut un en-tête de référent pour indiquer au serveur d’où il vient. Un serveur peut utiliser cette information pour influencer le comportement, notamment en autorisant ou en refusant l’accès à certains emplacements.
Il est facile de contourner cela, mais cela empêche le lien accidentel depuis d’autres sites web.
location /uploads/ {
valid_referers www.example.com;
if ($invalid_referer) {
return 403;
}
}
Remplacer www.example.com dans le code ci-dessus par le domaine de votre instance Discourse devrait constituer une configuration nginx appropriée pour empêcher le hotlinking vers les fichiers uploadés de votre instance.
Vous voudrez peut-être faire quelque chose de différent que de renvoyer une erreur 403 (non autorisé). Par exemple, vous pourriez souhaiter rediriger vers la page d’accueil de votre instance Discourse. Pour cela, vous pouvez utiliser le code suivant à la place.
location /uploads/ {
valid_referers www.example.com;
if ($invalid_referer) {
return 307 /;
}
}
Il devrait être possible d’ajouter quelque chose à votre fichier app.yml pour injecter la configuration lors d’une reconstruction. Cependant, je ne suis pas sûr de la façon de le faire, car je n’ai pas examiné cela en détail.