Назад | Перейти на главную страницу

Как HSTS обрабатывает смешанный контент?

Я только что проверил Тест сервера SSL правильно ли я реализовал сертификат SSL на своем сервере. Я получил оценку А в их рейтинге, но вы можете получить А + если вы активировали HSTS. После некоторого поиска я обнаружил, что Google может рассматривать HSTS как фактор ранжирования. Так что, похоже, это актуально с точки зрения SEO. Перед внедрением HSTS у меня есть несколько вопросов.

Вопрос 1

Что произойдет, если некоторые внешние javascripts загружают, например, изображение через http (вместо https) на мой сайт? Будет ли HSTS предотвращать загрузку всей страницы или блокировать только определенный «небезопасный» контент?

вопрос 2

На данный момент (без HSTS) я получаю предупреждение о "смешанном содержании", если ресурсы загружаются через http. Существует ли «смешанный контент», если активирован HSTS?

HSTS вообще не пытается обрабатывать смешанный контент: он просто контролирует, должен ли браузер выполнять внутреннюю 307 перенаправлять на HTTPS всякий раз, когда он пытается загрузить URL-адреса HTTP, или нет. Предупреждение о смешанном содержании - это функция браузера, и все текущие браузеры это делают (Mozilla Firefox 23+, Google Chrome 21+, Internet Explorer 10+, Edge с самого начала ...). Предупреждающие блоки смешанного содержания, например <script> и <iframe>, но нет <img>.

Предупреждение о смешанном содержимом во всех упомянутых браузерах проверяется перед загрузкой любого содержимого вообще, т.е. перед перенаправлением HSTS. Это кажется естественным, и его также легко проверить. По умолчанию все внешние изображения загружаются даже с использованием обычного HTTP, а предупреждение о смешанном содержимом выдается только для скриптов и iframe.

HSTS изменяет только ситуацию, когда изображение из домена с поддержкой HSTS загружается с использованием обычного HTTP, и 307 Internal Redirect выполняется. Стоит отметить: это ситуация без предупреждений о смешанном содержании.

Следовательно, HSTS не работает как быстрое решение проблемы смешанного содержимого:

  • Вам нужно исправить http:// URL-адреса на вашем сайте даже для самого домена.
  • Вам необходимо убедиться, что вы не загружаете внешние скрипты из источников, которым вы не доверяете.
    • Если третья сторона не активирует HSTS, она по-прежнему уязвима для атак типа «злоумышленник в середине».
    • Третьи стороны могут загружать контент из других внешних источников, и все это относится и к ним.
    • Сайт с внешним содержимым может быть взломан или самостоятельно выполнять вредоносные действия.

Я думаю, что ответ на это будет зависеть от того, размещены ли сценарии, на которые вы ссылаетесь, в домене, для которого включен HSTS.

Например. если вы обслуживаете свой контент из mydomain.com и включите HSTS для этого домена (и, возможно, субдоменов), но скрипты и другой смешанный контент, на который вы ссылаетесь, обслуживаются из otherdomain.com который не включает HSTS, возможно смешанное содержимое, и браузер все равно будет предупреждать об этом.

HSTS остановит (и поможет исправить смешанный контент) ресурсы, связанные с помощью HTTP в том же домене - и, возможно, субдомен в зависимости от вашей конфигурации - поскольку они будут автоматически «обновлены» до HTTPS.

Это сделано намеренно: если HSTS работает, он получит правильное изображение (галочка по HTTPS), а если нет, то X по HTTP.

Надеюсь, браузеры перестанут отображать предупреждения о смешанном содержимом для содержимого, обновленного до HTTPS через HSTS. :)