Да, это риск, и это уязвимость, с которой был создан протокол HTTP Struct Transport Protocol.
Идея заключается в том, что когда вы подключаетесь к сайту HTTPS, сервер отправляет обратно HTTP-заголовок вроде следующего:
Strict-Transport-Security "max-age=2592000;"
Это говорит браузеру: «в течение следующих 30 дней (60 * 60 * 24 * 365 = 2592000) НЕ подключаться через HTTP, но вместо этого обновлять любой HTTP-запрос до HTTPS автоматически до вы отправляете запрос ». В Chrome вы видите 307 интернет-перенаправление в средствах разработчика.
Почему 30 дней? Ну, он должен быть кэшируемым для браузеров, чтобы быть полезным, и вы можете решить, как долго. Некоторые люди рекомендуют 1 или даже 2 года (31536000 или 63072000 секунд соответственно).
Вы также можете указать заголовок IncludeSubdomains так поддомены автоматически защищаются слишком (хотя они, очевидно, должны возвращать заголовок тоже в случае, если кто-то посещает подобласть непосредственно):
Strict-Transport-Security "max-age=2592000; includeSubDomains"
Это необходимо для лучшей защиты для печенья поскольку поддельный поддомен может получить или установить файлы cookie для родительского домена и захватить сеанс. Однако это опасно, если субдомен не находится на HTTPS, что может не всегда проявляться. Например. Если вы используете свое основное доменное имя внутри и имеете сайт по адресу http://intranet.example.com, тогда он может перестать работать до тех пор, пока вы не обновите его до HTTPS или не измените политику и не дождитесь истечения предыдущего максимального времени.
Это по-прежнему оставляет за собой риск, поскольку первое подключение необходимо сделать, чтобы этот заголовок добавил эту политику в кеш браузера. Это доверие к политике первого использования (TOFU). Точно так же, если вы посещаете долгое время после получения политики, вы находитесь в той же ситуации. По этой причине вы можете отправить свой сайт в список предварительной загрузки, чтобы браузер вставлял ваш сайт в него, поэтому он всегда предполагает установку HSTS. Используйте этот сайт для этого: https://hstspreload.appspot.com. Это звучит здорово, но не без риска.После того, как вы отправите свой сайт в этот список, его практически невозможно удалить, поэтому в основном это постоянная приверженность HTTPS. Может быть, не плохо, но вы также должны иметь длительное истечение, установку IncludeSubdomains, а также добавить настройку преднагрузки:
Strict-Transport-Security "max-age=2592000; includeSubDomains; preload"
Лично я считаю, что это перебор и потенциально очень опасно из-за того, что это вне вашего контроля и нелегко отменить. IMHO только высокопрофессиональные сайты (онлайн-банкинг, сайты электронной коммерции, Google, Facebook, Twitter ... и т. Д.) Должны беспокоиться о предварительной загрузке, но это ваш собственный выбор.
Более подробную информацию о моих сообщений в блоге: https://www.tunetheweb.com/security/http-security-headers/hsts/ https://www.tunetheweb.com/blog/dangerous-web-security-features/
Фантастический комментарий! – kjs3