外部リンクからのダウンロードを禁止できますか?

ブラウザは気にしませんが、サーバーは可能です。デフォルトでは、ブラウザがリファラーを含むページと同じオリジンに対してリクエストを行う場合、サーバーにどこから来たのかを伝えるためにリファラーヘッダーを含めます。サーバーはこの情報を使用して、特定の場所へのアクセスを許可または拒否するなど、動作に影響を与えることができます。

回避は簡単ですが、他のウェブサイトからの偶発的なリンクを防ぐことができます。

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 ファイルに何かを追加して、リビルド時に設定を注入することも可能です。ただし、その部分はどのように行うか確信が持てません。詳しく調べていないためです。

「いいね!」 4