# Outlook 안전 링크 URL을 제거해야 하나요?

**URL:** <https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114>\
**Category:** Feature\
**Tags:** email\
**Created:** [3월 14, 2023, 2:02오후 UTC](https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114 "2023-03-14T14:02:47Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![ethang](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethang/32/297870_2.png) [@ethang](https://meta.discourse.org/u/ethang)\
**Post date:** [3월 14, 2023, 2:02오후 UTC](https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114/1 "2023-03-14T14:02:47Z")

</div>

좋은 아침입니다. 저는 소프트웨어 서비스의 호스팅된(비즈니스 티어) 포럼에서 관리자 역할을 맡고 있으며, 사용자가 저에게 직접 이메일을 보내는 대신 메시지를 전달하여 새로운 주제를 생성하도록 Discourse에 게시하도록 부드럽게 유도하고 있습니다.

불행히도 제 이메일은 Windows Defender에서 [Safe Links](https://learn.microsoft.com/en-us/microsoft-365/security/office-365-security/safe-links-about?view=o365-worldwide)가 활성화된 관리형 Outlook/Office 365 계정이며, 정책에 대한 제어 권한이 없습니다. 따라서 Discourse에서 이메일 게시 기능을 활성화하고 이메일 계정의 메시지를 전달할 경우, 메시지에 포함된 링크가 Microsoft의 난독화된 Safe Link URL로 감싸져 Discourse 주제에서 보기 흉한 형태로 출력되며(Discourse의 링크 미리보기 등이 깨지는 문제 발생) 문제가 됩니다.

Discourse 측에서 게시된 Office365 Safe Link URL을 원래 링크로 복원하는 도구나 옵션이 있을까요? 놓치고 있는 이메일 설정이나 이러한 게시 정책을 설정하는 데 사용할 수 있는 플러그인이 있을까요? 아마도 Outlook 측에서 메시지를 전달할 때 수동으로 수정해야 할 것 같지만, 물어볼 가치가 있다고 생각하여 질문드립니다.

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [3월 14, 2023, 2:17오후 UTC](https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114/2 "2023-03-14T14:17:33Z")

</div>

> [@ethang](#):
>
> 저희 사용자들이 제게 직접 이메일을 보내는 대신 메시지를 전달하여 새 주제를 만드는 방식으로 Discourse에 게시하도록 부드럽게 장려하고 있습니다.

Outlook이 URL을 재작성하기 때문에, Discourse를 직접 사용함으로써 사용자들이 Discourse를 사용하도록 부드럽게 장려해야 합니다. 🙂

> [@ethang](#):
>
> Discourse 측에서 게시된 Office365 Safe Link URL을 원래 링크로 되돌리는 도구나 옵션이 있나요?

Discourse는 many cases에서 onebox를 생성하기 위해 리디렉트를 따라 URL에 도달하지만, 그것이 작동하지 않는다면 주제를 생성할 때 이메일 클라이언트가 아닌 Discourse의 사용자 인터페이스를 사용해야 할 것 같습니다.

---

<div class="post-metadata">

**Author:** ![ethang](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethang/32/297870_2.png) [@ethang](https://meta.discourse.org/u/ethang)\
**Post date:** [3월 14, 2023, 2:48오후 UTC](https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114/4 "2023-03-14T14:48:43Z")

</div>

> [@pfaffman](#):
>
> Outlook이 URL을 다시 작성하기 때문에, 직접 Discourse를 사용함으로써 사용자가 Discourse를 사용하도록 부드럽게 유도해야 합니다. 🙂

…제가요? 하지만 이메일로 게시하는 기능이 있으므로, 그럴 때의 편의성을 의미하는 것 같습니다. 예를 들어, UI 사이에서 수동으로 복사-붙여넣기를 해야 하는 대신 기존 메시지의 “전달” 버튼을 누르는 것처럼요 🙂

---

<div class="post-metadata">

**Author:** ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)\
**Post date:** [3월 14, 2023, 4:28오후 UTC](https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114/6 "2023-03-14T16:28:41Z")

</div>

> Safe Links는 수신 이메일에서 알려진 악성 하이퍼링크를 스캔합니다. 스캔된 URL은 Microsoft 표준 URL 접두사 `https://nam01.safelinks.protection.outlook.com`을 사용하여 다시 작성되거나 \*래핑(wrapping)\*됩니다.

이것들을 언래핑(unwrap)할 수 있을지도 모르니, URL이 _어떻게_ 다시 작성되는지 몇 가지 예시를 올려주실 수 있나요?

제 메일함을 살펴보니 두 개를 찾았습니다:

```plaintext
https://nam01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fvcacanada.com%2F&data=02%7C01%7Cinternalmedicine.altavista%40vca.com%7C8b234337846c4b26704608d859d038fb%7Ca2bdfa5ebe874736892b6db8bbf91546%7C1%7C0%7C637358098123527523&sdata=2b8GyZaj5cH3XNVMQ7KuIB8zgv2n4rEqX2MJutsQn2c%3D&reserved=0
https://nam01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.youtube.com%2Fembed%2F4qo27xcVS5I&data=02%7C01%7C%7C53e03ffe911442ddf50108d6492424d0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636776816911303670&sdata=vzPKnv1BDVf6LL4z9P3faVYkxxcLcyjnnrLcch%2B1npA%3D&reserved=0

```

이것은 꽤 간단해 보입니다:

```python
def un_safelink(link):
    try:
        parsed = urllib.parse.urlparse(link)
        if parsed.netloc != 'nam01.safelinks.protection.outlook.com':
            return link
        query = urllib.parse.parse_qs(parsed.query)
        return query['url'][0]
    except:
        return link

```

---

<div class="post-metadata">

**Author:** ![ethang](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethang/32/297870_2.png) [@ethang](https://meta.discourse.org/u/ethang)\
**Post date:** [3월 14, 2023, 4:37오후 UTC](https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114/7 "2023-03-14T16:37:37Z")

</div>

모두 비슷한 패턴을 따르는 것 같습니다. 다만 제 경우에는 제 특정 계정에 대한 참조도 포함되어 있는 것 같고, 이는 아마도 엔터프라이즈 수준의 구독 관련 사항일 것입니다. 예:

```plaintext
https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftransformativemedia.swinburne.edu.au%2F&data=05%7C01%7Cethan.gates%40yale.edu%7Cd0c6ce8e6b4c44f1d9f508db243eda00%7Cdd8cbebb21394df8b4114e3e87abeb5c%7C0%7C0%7C638143624621704534%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=B5zPUFQ4qRQqSdmtimFQLCnosghaZENDmyaz2zZlw40%3D&reserved=0

```

---

<div class="post-metadata">

**Author:** ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)\
**Post date:** [3월 14, 2023, 4:42오후 UTC](https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114/8 "2023-03-14T16:42:42Z")

</div>

> [@supermathie](#):
>
> 마이크로소프트 표준 URL 접두사: `https://nam01.safelinks.protection.outlook.com`

> [@ethang](#):
>
> `https://nam12.safelinks.protection.outlook.com`

🤨

문서화의 수준이 참담하네요

> [@ethang](#):
>
> 내 특정 계정에 대한 참조

네, 발신자나 수신자의 이메일 주소가 메타데이터에 인코딩되어 있는 것 같습니다. 굳이 필요하지는 않지만요:

```plaintext
{'url': ['http://transformativemedia.swinburne.edu.au/'],
 'data': ['05|01|frodo.baggins@yale.edu|d0c6ce8e6b4c44f1d9f508db243eda00|dd8cbebb21394df8b4114e3e87abeb5c|0|0|638143624621704534|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||'],
 'sdata': ['B5zPUFQ4qRQqSdmtimFQLCnosghaZENDmyaz2zZlw40='],
 'reserved': ['0']}

```

---

<div class="post-metadata">

**Author:** ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)\
**Post date:** [3월 14, 2023, 4:45오후 UTC](https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114/9 "2023-03-14T16:45:47Z")

</div>

> [@ethang](#):
>
> Discourse의 링크 미리보기 깨짐

… 그렇게 안 보이는데?

[https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftransformativemedia.swinburne.edu.au%2F&data=05|01|ethan.gates%40yale.edu|d0c6ce8e6b4c44f1d9f508db243eda00|dd8cbebb21394df8b4114e3e87abeb5c|0|0|638143624621704534|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=B5zPUFQ4qRQqSdmtimFQLCnosghaZENDmyaz2zZlw40%3D&reserved=0](https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftransformativemedia.swinburne.edu.au%2F&data=05%7C01%7Cethan.gates%40yale.edu%7Cd0c6ce8e6b4c44f1d9f508db243eda00%7Cdd8cbebb21394df8b4114e3e87abeb5c%7C0%7C0%7C638143624621704534%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=B5zPUFQ4qRQqSdmtimFQLCnosghaZENDmyaz2zZlw40%3D&reserved=0)

아, 보기 흉하군. 미리보기에서 이런 것을 봤어:

> ![image](https://global.discourse-cdn.com/meta/original/4X/8/d/4/8d45f7f825964ccdf5f7467f2a7977a4c3c400bd.png)

이것은 다음과 동일하게 동작해야 해:

[https://transformativemedia.swinburne.edu.au](https://transformativemedia.swinburne.edu.au)

다만, 원박스(onebox)가 적용되는 사이트는 여전히 작동해:

> **[Animal Hospitals, Veterinarians & Emergency Vets | VCA Canada](https://vcacanada.com/)**
>
> We see things differently at VCA Canada. We don’t see an animal, we see a family member. We don’t see an annual exam, but a wellness consultation that will contribute to a happy, healthy pet for life.

이것은 아마도 이러한 링크에 대한 “인라인 제목(inline titles)”을 생성하는 방식을 조정하는 문제일 수 있어.

---

<div class="post-metadata">

**Author:** ![ethang](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethang/32/297870_2.png) [@ethang](https://meta.discourse.org/u/ethang)\
**Post date:** [3월 14, 2023, 4:56오후 UTC](https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114/10 "2023-03-14T16:56:41Z")

</div>

아, 프리뷰/원박싱 관련해서 제가 드린 예시가 별로였을 수도 있겠네요. 다른 예시들을 좀 시도해 보겠습니다. 어쨌든, 그건 어색한 링크/URL 자체보다는 덜 중요한 문제입니다!

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [3월 14, 2023, 4:57오후 UTC](https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114/11 "2023-03-14T16:57:18Z")

</div>

> [@ethang](#):
>
> 제가요?

마이크로소프트가 URL을 얼마나 “안전하게” 만들었는지에 따라 달라집니다. 작동하도록 만드는 것이 가능해 보이니, 문제의 난이도에 대해 너무 비관적으로 생각했던 것 같습니다. 죄송합니다.

마이크로소프트를 사용하는 사람과 여러 번 이메일을 주고받았는데, 제 메일 리더에서 읽기 어려웠습니다.

---

<div class="post-metadata">

**Author:** ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)\
**Post date:** [3월 14, 2023, 4:57오후 UTC](https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114/12 "2023-03-14T16:57:50Z")

</div>

> [@pfaffman](#):
>
> 마이크로소프트 제품을 사용하는 사람과 여러 번 이메일을 주고받았는데, 내 메일 리더에서 읽기 어려웠습니다.

예를 들어볼까요, 네!

---

<div class="post-metadata">

**Author:** ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)\
**Post date:** [3월 14, 2023, 5:05오후 UTC](https://meta.discourse.org/t/stripping-outlook-safe-link-urls/258114/13 "2023-03-14T17:05:47Z")

</div>

이 기능을 완전히 제거하는 것이 다른 비즈니스 유형 사용자들의 보안 의도에 위배되는지 그들의 의견을 들어보고 싶습니다. 이 기능의 장점 중 하나는 나중에 특정 URL이 "안전하지 않음"으로 판정될 경우, 해당 링크를 클릭하려는 추가 시도가 차단된다는 것입니다.

반면에 포럼 소유자들은 마이크로소프트가 "포럼 사용자들의 모든 활동을 추적하고 있다"며 불만을 제기할 수 있습니다.

여기서는 두 가지 관점을 모두 볼 수 있습니다.

적절한 접근 방식은 다음과 같을 수 있습니다:

- safelink된 URL이 붙여넣기된 경우 (단독으로 또는 인라인으로)
  - 원박스(onebox)를 정상적으로 해결합니다.
  - 원박스나 제목이 없다면, "예쁜 텍스트(pretty text)"를 언래핑된 링크로 사용합니다.
  - 링크 대상은 여전히 safelink된 URL이어야 합니다.

즉, 다음과 같이 표시됩니다:

[https://transformativemedia.swinburne.edu.au](https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftransformativemedia.swinburne.edu.au%2F&data=05%7C01%7Cethan.gates%40yale.edu%7Cd0c6ce8e6b4c44f1d9f508db243eda00%7Cdd8cbebb21394df8b4114e3e87abeb5c%7C0%7C0%7C638143624621704534%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=B5zPUFQ4qRQqSdmtimFQLCnosghaZENDmyaz2zZlw40%3D&reserved=0)
