Удаление URL-адресов Outlook Safe Links?

Доброе утро! Я администратор форума на хостинге (тарифный план Business) для программного сервиса и пытаюсь мягко побудить наших пользователей публиковать сообщения на нашем Discourse, а не писать мне напрямую, пересылая письма для создания новых тем.

К сожалению, моя почта — это управляемый аккаунт Outlook/Office 365 с включённой функцией Safe Links в Windows Defender, и я не имею контроля над политиками. Поэтому при включении возможности публикации через email в Discourse и пересылке любых сообщений с моего почтового аккаунта все ссылки в сообщении выглядят ужасно в получившейся теме Discourse: они оборачиваются в одну из запутанных ссылок Safe Link от Microsoft (что ломает предпросмотр ссылок в Discourse и т.д.).

Есть ли на стороне Discourse какой-либо инструмент или опция, позволяющая преобразовать опубликованную ссылку Safe Link от Office 365 обратно в исходную ссылку? Может быть, я упускаю какую-то настройку в почте или существует плагин, который можно использовать для установки подобной политики публикации? Подозреваю, что мне, возможно, придётся исправлять это вручную при пересылке сообщений на стороне Outlook, но решил, что стоит спросить.

Поскольку Outlook переписывает URL-адреса, вам нужно мягко побудить их использовать Discourse, используя его сами. :slight_smile:

Discourse во многих случаях следует перенаправлениям, чтобы получить URL-адрес для создания onebox, но если это не работает, боюсь, вам придется использовать интерфейс Discourse, а не почтовый клиент, для создания тем.

2 лайка

…Я должен это делать? Но поскольку есть функция отправки постов через электронную почту, это подразумевает, что бывают случаи, когда это удобно :slight_smile: например, нажатие «Переслать» на существующем сообщении вместо того, чтобы вручную копировать и вставлять данные между интерфейсами.

Safe Links сканирует входящую электронную почту на наличие известных вредоносных гиперссылок. Отсканированные URL-адреса переписываются или обёртываются с использованием стандартного префикса URL Microsoft: https://nam01.safelinks.protection.outlook.com.

Мы, возможно, сможем разворачивать такие ссылки. Не могли бы вы привести несколько примеров того, как они переписываются?

Пролистав свою папку «Входящие», я нашёл два примера:

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

Это выглядит довольно просто:

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
4 лайка

Я думаю, что все они следуют схожему шаблону, хотя в моём случае, похоже, есть ещё какая-то ссылка на мою конкретную учётную запись, что, вероятно, связано с подпиской корпоративного уровня, например:

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

:face_with_raised_eyebrow:

вот так документация

Да, похоже, что в метаданные кодируется адрес электронной почты отправителя или получателя. Хотя нам это и не нужно:

{'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']}

… Я не думаю, что это так?

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://transformativemedia.swinburne.edu.au

Хотя сайт, который всё ещё работает в режиме onebox:

Возможно, это просто вопрос настройки того, как мы генерируем «встроенные заголовки» для таких ссылок.

2 лайка

Ах, это, возможно, был просто неудачный пример касательно превью/одной ссылки. Я попробую другие примеры. В любом случае, это менее важно, чем сами громоздкие ссылки/URL!

1 лайк

Это зависит от того, насколько Microsoft сделала URL-адреса «безопасными». Похоже, что, возможно, удастся заставить их работать, поэтому, кажется, я был слишком пессимистичен насчёт сложности этой проблемы. Извините за это.

У меня было несколько переписок по электронной почте с кем-то, использующим Microsoft, из-за чего их было трудно читать в моём собственном почтовом клиенте.

2 лайка

Приветствуются примеры, да!

2 лайка

Мне было бы интересно узнать мнение других пользователей из бизнес-среды о том, нарушает ли полное удаление этого элемента их намерения в области безопасности. Одним из преимуществ этой функции является то, что URL-адрес может впоследствии быть признан «небезопасным», и дальнейшие попытки перехода по нему будут блокироваться.

С другой стороны, владельцы форумов могут быть недовольны тем, что Microsoft «отслеживает всю активность пользователей их форума».

Здесь можно увидеть две стороны аргументации.

Хорошим подходом может быть следующее:

  • если вставлен URL-адрес, прошедший через Safelink (отдельно или внутри текста)
    • разрешить его как onebox в обычном режиме
    • если onebox или заголовок отсутствуют, использовать «красивый текст» как развернутую ссылку
    • целевой адрес ссылки должен оставаться URL-адресом, прошедшим через Safelink

То есть это будет выглядеть так:

https://transformativemedia.swinburne.edu.au

3 лайка