Смешанный контент из-за изображений с прямыми ссылками

Сегодня утром я внезапно заметил значок предупреждения «Ваше соединение небезопасно» для нашего форума в адресной строке браузера. Достаточно быстро, используя раздел «Последние» и проверяя загруженные пользователями изображения, я обнаружил источник проблемы. Нашёл два изображения (с одностраничной вставкой), которые содержали ссылки http вместо https. Я удалил их и заменил просто прямыми ссылками. Проблема сразу же была устранена, и у нас снова появился зелёный замок безопасности. :grinning: Теперь я понимаю, почему на другом форуме, участником которого я являюсь, также отображается предупреждение «Соединение небезопасно»… многие люди за годы загружали ссылки с http-сайтов, которые были оформлены через одностраничную вставку. Рад, что мне не приходится разбираться с этим форумом! :wink:

Если изображения не очень большие, Discourse при настройках по умолчанию загружает эти удаленные изображения и делает их локальными, чтобы предотвратить исчезновение картинок. Это стандартное поведение в Discourse. Это также имеет дополнительное преимущество — изображения становятся доступны по протоколу HTTPS.

У нас платная версия Discourse, и мы используем настройки по умолчанию — я ничего не менял. Сам файл изображения весит всего 18,5 КБ. Единственное, что вызвало предупреждение о небезопасном соединении, — это Onebox со ссылкой на http. Как только я удалил его, менее чем за 2 секунды значок замка снова стал зелёным. Пользователь загрузил сохранённое фото выше Onebox, чтобы показать его в большем размере. Это работало нормально. Я могу проверить, каковы настройки по умолчанию.

Редакция: Я проверил настройки по умолчанию для этого:

crawl images: (галочка установлена) Загружать удалённые изображения…
download remote images to local: (галочка установлена) Преобразовывать удалённые изображения в локальные, используя…

Ничего не было изменено.

Попробуйте вставить сюда ту же ссылку на изображение, и мы сможем посмотреть. Единственное, что, по моему мнению, может помешать локальной загрузке, — это если изображение очень большое.

Я просто вставил ссылку, и она не превратилась в Onebox. Я также вставил вторую ссылку, которую использовал пользователь, — она тоже не сработала, но затем я удалил её, так как в ней был указан номер её учётной записи для загрузки фотографий с этого сайта.

Странно, что здесь она не будет превращаться в Onebox. Я только что создал новый ответ на нашем форуме, вставил ссылку — она превратилась в Onebox, и значок замка безопасности сразу изменился с зелёного на чёрный с предупреждающим восклицательным знаком… А теперь в Onebox отображается битая ссылка на фотографию.

Редактирование: Я только что получил бейдж за свой первый Onebox… который здесь, на Meta, отображает только ссылку. :laughing:

Это странно :thinking:.

@nbianca, не мог бы ты посмотреть на это, когда вернёшься?

Первый бейдж onebox был выдан для ссылок, которые так долго не oneboxились, что я думал, что это и есть желаемое поведение. :roll_eyes:

Это произошло на моём сайте только после того, как я удалил ссылку, которая была превращена в Onebox, но вызывала появление значка «небезопасно» в адресной строке нашего форума. После того как я опубликовал эту ссылку здесь на Meta, она не была превращена в Onebox, но значок мне всё же присвоила. Ещё один странный момент: я снова опубликовал ссылку на своём сайте, и теперь она не превращается в Onebox, а вместо фото отображается значок «битая ссылка».我开始怀疑, что исходная ссылка, к которой был приписан номер клиента оригинального автора, больше не превращается в Onebox, потому что я удалил ID клиента. Но она также опубликовала то же фото и ту же ссылку без своего номера ID в том же посте, и эта ссылка была превращена в Onebox. Это меня действительно сбивает с толку. Все остальные ссылки других пользователей… и оригинального автора… с тех пор были превращены в Onebox на моём сайте. Только эта одна ссылка вызвала этот инцидент.
Я спрошу оригинального автора — Модератора — создаст ли она тестовую тему и опубликует там свою ссылку, чтобы 1) проверить, превращается ли она в Onebox, и 2) изменится ли значок «безопасно» в адресной строке обратно на значок «небезопасное соединение». Я немного озадачен. :wink:

edit: Я создал скрытую тему в категории Meta на нашем сайте. Я попросил Модератора опубликовать свою ссылку(и) в этой теме (у неё также есть права администратора). Как только она опубликует, я сообщу здесь.

Edit2: Вот ссылка, которую моя Модератор опубликовала в тестовой теме. Она была превращена в Onebox, и значок замка снова изменился на «небезопасное соединение». Как видите, здесь она не была превращена в Onebox. Однако на нашем сайте, где она её опубликовала, она была превращена в Onebox. Я скопировал ссылку и опубликовал её в нашей тестовой теме. Она была превращена в Onebox, но без фото! Как видите, здесь она не была превращена в Onebox. Думаю, это может быть связано с cookie-файлом отслеживания, который они установили на компьютере моей Модератора. У меня нет этого cookie, и фото не отображается для меня, когда я превращаю ссылку в Onebox.

Вам нужна ссылка на нашу тестовую тему? Это единственная скрытая тема в категории Meta, и она находится в верхней части списка. Мы являемся платными подписчиками. (forum.nodders.net)

Модератор снова загрузила свой мод и добавила ссылки в категорию Meta, после чего значок «Безопасное соединение» изменился с зелёного на чёрный с оранжевым значком предупреждения. Я опубликовал (за неё) ссылку от Mozilla (Firefox) о различиях между HTTP, HTTPS и смешанным контентом, поскольку она утверждала, что смешанный контент не представляет проблемы. :roll_eyes:

Я снова удалю её ссылки, чтобы восстановить безопасное подключение к нашему форуму. Если потребуется, я попрошу её снова опубликовать их.

Если здесь не работает однооконный режим, то делать нечего. Ваша версия актуальна относительно последнего кода?

Я проверял в последний раз вчера, и Дашборд был обновлён за пару часов до этого. Discourse был обновлён 26 июля… до версии 2.4.0.beta2?
Похоже, что именно эта ссылка является единственной причиной проблемы. Не уверен, связана ли она с моим аккаунтом модера на том сайте или, возможно, с cookie-файлом отслеживания, который «теряется», когда ссылка отображается в виде превью? Я удалил эту ссылку на нашем сайте, и у нас снова «безопасное соединение» — больше нет смешанного контента.

Проблема была исправлена в:

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

Простое решение

  • Перейдите в /admin/customize

  • Добавьте следующий код в всех существующих тем.

<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">

Это работает в Chrome, насколько мне удалось проверить. :hushed: