Как перенаправить с HTTPS на HTTP без раздражающих сообщений об ошибках

StackOverflow https://stackoverflow.com/questions/651772

Вопрос

Я хочу перенаправлять пользователей после входа по протоколу HTTPS на HTTP-страницы сайта.Использование HTTPS для всего сайта не произойдет.

То, что у меня есть на данный момент, это следующее:

  1. Пользователь публикует форму входа на защищенный сайт
    • Защищенный сервер проверяет учетные данные
    • Защищенный сервер отправляет клиенту перенаправление 302

Это работает, за исключением того, что на моем компьютере в IE6 пользователь получает сообщение об ошибке, потому что по умолчанию используется предупреждение при выходе с защищенной страницы.Эти ошибки являются для меня убийцей удобства использования и, следовательно, препятствием для показа.Я изменил его так, чтобы шаг 3 был

  • Сервер отправляет html-код с обновлением meta

Но это происходит очень медленно;даже на моем локальном компьютере это заметно медленнее, чем выполнение перенаправления 302.

Есть ли лучший способ достичь цели беспроблемного перенаправления при стандартных настройках, которые используют люди?На IE6 приходится 20-25% нашего трафика.Кроме того, есть ли у кого-нибудь хорошая информация о том, какие браузеры будут предупреждать, а какие нет о перенаправлении 302?Я рассматриваю возможность внесения IE6 в черный список, чтобы только он получал медленное обновление meta, а все остальные получали быстрое 302.

Это было полезно?

Решение

Я рассматриваю возможность внесения IE6 в черный список, чтобы только он получал медленное обновление meta, а все остальные получали быстрое 302.

Я бы сделал что-то подобное.Также включите в текст простую HTML-ссылку для обеспечения доступности.

Обратите внимание, что некоторые другие браузеры выдают аналогичное предупреждение о выходе с HTTPS-сайта, но в их случае оно сопровождается кнопкой (обычно с предварительной отметкой) “не спрашивай меня снова”.Таким образом, к тому времени, когда они попадут на ваш сайт, они почти наверняка скажут, чтобы это предупреждение исчезло.Это не делает предупреждение менее бессмысленным, но, по крайней мере, устраняет проблему.

  1. Защищенный сервер отправляет клиенту перенаправление 302

Вы не должны получать 302 в ответ на СООБЩЕНИЕ.Теоретический браузер, который серьезно отнесся к HTTP RFC, мог бы отреагировать на это повторной отправкой формы по новому URL.(Что, по иронии судьбы, сделало бы предупреждение IE6 о том, что информация “повторно передается на небезопасный сайт”, менее вводящим в заблуждение.) Вместо этого используйте “303 См. другое”.

Другие советы

Возрождаю старую тему , но чтобы сделать ее обязательной , публикую следующее , чтобы у других разработчиков был выбор реализации

Один из способов перехода с https на http без предупреждающего сообщения - использовать перенаправление клиента с использованием javascript.

Шаги

  1. Пользователь вводит регистрационные данные в форме https и нажимает на кнопку входа
  2. кнопка входа отправит сообщение обратно в форму https для проверки входа (при условии, что логин правильный), перенаправит на страницу ожидания, которая также находится под https, и отобразит сообщение (пожалуйста, подождите, пока сайт перенаправит вас)
  3. Эта страница удержания перенаправляет javascript на страницу http

предупреждающее сообщение браузера отображаться не будет

HTH

Я не думаю, что есть какой-то другой выход.Это сообщение об ошибке предназначено для удобства пользователя и теперь также присутствует в IE 7 и Firefox 3.Единственный известный мне способ предотвратить это - добавить ваш сайт в качестве надежного в браузере.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top