Как разрешить смешанное содержимое (http с https) с помощью метатега контента-политики безопасности?

Я заставляю https получать доступ к моему сайту, но часть содержимого должна быть загружена поверх http (например, содержимое видео не может превышать https), но браузер блокирует запрос из-за mixed-contents политика.

После нескольких часов поиска я обнаружил, что могу использовать Content-Security-Policy, но я не знаю, как разрешить смешанное содержимое с ним.

<meta http-equiv="Content-Security-Policy" content="????">

Ответ 1

Вы не можете.

CSP ограничивает контент на вашем веб-сайте, а не ослабляет ограничения браузера.

Защищенные сайты https предоставляют пользователям определенные гарантии, и это не совсем справедливо, чтобы затем разрешить загрузку содержимого HTTP-контента (следовательно, предупреждения о смешанном содержании) и действительно несправедливо, если бы вы могли скрыть эти предупреждения без согласия ваших пользователей.

Вы можете использовать CSP для нескольких вещей, чтобы помочь перейти на https, например:

  • Вы можете использовать его для автоматического обновления HTTP-запроса до https (хотя поддержка браузера не является универсальной). Это помогает в случае, если вы пропустили изменение ссылки http на эквивалент https. Однако это предполагает, что ресурс может быть загружен через https и звучит так, как будто вы не можете загружать их поверх https, чтобы не был вариант.

  • Вы также можете использовать CSP, чтобы помочь вам идентифицировать любые HTTP-ресурсы на вашем сайте, которые вы пропустили, отправив сообщение в службу, которую вы можете отслеживать, чтобы сказать, что HTTP-ресурс был загружен. Это позволяет вам идентифицировать и исправлять http-ссылки на https, поэтому вам не нужно зависеть от автоматического обновления.

Но это не то, что вы действительно ищете.

Ответ 2

Вы не должны... но вы МОЖЕТЕ, функция демонстрируется здесь, изображение HTTP PNG, преобразованное на лету в HTTPS.

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

Здесь также появился новый API разрешений который позволяет веб-серверу проверять права пользователя на такие функции, как геолокация, уведомления и веб-MIDI.