# 외부 링크에서 다운로드를 금지할 수 있나요?

**URL:** <https://meta.discourse.org/t/can-i-forbid-download-from-external-links/206229>\
**Category:** Feature\
**Created:** [10월 16, 2021, 2:39오후 UTC](https://meta.discourse.org/t/can-i-forbid-download-from-external-links/206229 "2021-10-16T14:39:56Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![Simon\_Manning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon_manning/32/198596_2.png) [@Simon\_Manning](https://meta.discourse.org/u/Simon_Manning)\
**Post date:** [10월 17, 2021, 1:20오후 UTC](https://meta.discourse.org/t/can-i-forbid-download-from-external-links/206229/5 "2021-10-17T13:20:05Z")

</div>

> [@merefield](#):
>
> 브라우저는 이전에 어떤 페이지를 방문했는지 신경 쓰지 않습니다.

브라우저는 신경 쓰지 않지만, 서버는 신경 쓸 수 있습니다. 기본적으로 브라우저가 참조 페이지와 동일한 오리진(origin)으로 요청을 보낼 때, 서버가 요청이 어디에서 왔는지 알릴 수 있도록 referrer 헤더를 포함합니다. 서버는 이 정보를 사용하여 동작을 조정할 수 있으며, 특정 위치로의 액세스를 허용하거나 거부하는 것도 포함됩니다.

우회하기는 쉽지만, 다른 웹사이트에서의 단순한 링크를 방지할 수 있습니다.

```plaintext
location /uploads/ {
    valid_referers www.example.com;
    if ($invalid_referer) {
        return 403;
    }
}

```

위 코드에서 `www.example.com`을 Discourse 인스턴스의 도메인으로 대체하면, 인스턴스의 업로드에 대한 핫링크(hotlinking)를 방지하는 적절한 nginx 구성이 됩니다.

403(허용되지 않음) 반환 대신 다른 동작을 취하고 싶을 수도 있습니다. 예를 들어 Discourse 홈 페이지로 리다이렉트하는 것 등이 있습니다. 이렇게 하려면 대신 다음 코드를 사용할 수 있습니다.

```plaintext
location /uploads/ {
    valid_referers www.example.com;
    if ($invalid_referer) {
        return 307 /;
    }
}

```

재빌드(rebuild) 시 구성을 주입하기 위해 app.yml 파일에 무언가를 추가하는 것이 가능해야 합니다. 다만 이 부분은 제가 자세히 살펴본 적이 없어 어떻게 해야 하는지 정확히 알지 못합니다.

---

_[View the full topic](https://meta.discourse.org/t/can-i-forbid-download-from-external-links/206229)._
