Настройка "blocked onebox domains" не учитывается

Заблокированные домены onebox игнорируются в версии 2.9.0beta2 (c6265eec6b).

У нас:

Эти домены находятся за стенами OAuth, и onebox пытается предпросмотреть их, получая вместо этого URL входа OAuth.

4 лайка

Эта настройка действует только на стороне сервера — ваш браузер по-прежнему будет пытаться выполнить onebox для превью.

Я понимаю, почему это может показаться неожиданным.

Если вы опубликуете пост, будет ли показано onebox после рендеринга на сервере, или будет отображена обычная ссылка, как вы ожидаете?

3 лайка

При публикации комментария он отображается в виде одной панели:

4 лайка

Да, похоже, это работает некорректно… :confused:

1 лайк

Попробуйте добавить «auth.pi-hole.net» в настройки заблокированных onebox-доменов.

Мы настроили эту опцию так, что она следует за редиректами, но блокирует указанный домен только в том случае, если он является конечным пунктом назначения.

4 лайка

Только что попробовал, и всё равно показывает одну карточку. Думаю, это потому, что endpoint auth.pi-hole.net — это URI-перенаправление с OAuth-эндпоинта на github.com. А мы не хотим блокировать github.com для отображения одной карточки.

Давайте проверим, что будет, если заблокировать github… Нет, блокировка github.com тоже не предотвращает отображение одной карточки. Есть ли кэш, который использует одна карточка и который нужно очистить, чтобы выполнить новый запрос для tricorder?

3 лайка

Да, я понимаю, почему.

Существует однодневный кэш для полученных URL-адресов onebox, поэтому ручное обновление поста (post.rebake!) через день предотвратит oneboxing с заблокированным github.com.


У нас есть накопленная работа по более умной обработке перенаправлений аутентификации, но она ограничена только аутентификацией для форумов Discourse. Я думаю, что расширение настройки для также разрешения подкаталогов могло бы помочь нам в этом случае для github: https://github.com/login/oauth/authorize … Обсудим это внутренне.

Также, вероятно, стоит сделать текст подсказки более конкретным относительно того, что именно блокируется, возможно, добавив: «Onebox будет следовать перенаправлениям и блокировать только если конечный пункт назначения совпадает с этой настройкой».

4 лайка

Дикая идея… стоит ли нам поддерживать:

cache-control: no-store

Директива ответа no-store указывает на то, что любые кэши любого типа (личные или общие) не должны хранить этот ответ.

GitHub конкретно говорит: «пожалуйста… не храните меня»…

Возможно, onebox должен это уважать… и не хранить.

Мы всегда можем начать с экспериментальной настройки и посмотреть, какой эффект это даст.

В превью должно быть объяснено, почему мы не делаем oneboxing.


Примечание… мы используем no-store довольно во многих местах, но, я думаю, в этих случаях мы делаем редирект, однако здесь есть небольшая сложность.

6 лайков

Мы часто ссылаемся на множество pull-запросов и задач из наших различных репозиториев, и их отображение с превью в виде одной строки помогает новым пользователям понять суть темы, не заходя в GitHub.

1 лайк

Да, полностью понимаю. Мы работаем над решением. Через день, думаю, лучшим вариантом будет рассмотреть заголовок no-store.

3 лайка

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

Есть ли какие-либо идеи относительно сроков решения проблемы, или это «в ближайшее время™» :slight_smile:

3 лайка

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

4 лайка

Как это сделать в Docker для Discourse? :pleading_face:

Рекомендую подождать, пока наше исправление будет применено — мы работаем над PR:

Он вносит следующие изменения:

  1. Проверка по чёрному списку выполняется на каждом шаге цепочки перенаправлений.
  2. Добавлена новая функция, позволяющая любому сайту отказаться от oneboxing путём установки пользовательского заголовка.

Это решит проблему @dschaper и даст нам больше гибкости в будущем.

К сожалению, использование no store затронет слишком широкий круг случаев и приведёт к множеству ложных срабатываний.

6 лайков

PR был слит и находится в ветке tests-passed. Можете обновить @dschaper и проверить, решит ли это проблему? URL-адреса с доменом tricorder.pi-hole.net больше не должны отображаться в виде одной карточки на вашем сайте.

7 лайков

Здесь всё выглядит отлично!

Спасибо всем за исправление.

4 лайка