Как перенаправить с HTTPS на HTTP без раздражающих сообщений об ошибках - PullRequest
24 голосов
/ 16 марта 2009

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

На данный момент у меня есть следующее:

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

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

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

Но это очень медленно; даже на моей локальной машине это заметно медленнее, чем перенаправление 302.

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

Ответы [ 3 ]

11 голосов
/ 24 сентября 2010

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

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

Steps

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

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

НТН

5 голосов
/ 17 марта 2009

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

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

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

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

Вы не должны 302 в ответ на POST. Теоретический браузер, который серьезно относился к HTTP RFC, мог бы ответить на это, повторно разместив форму в новом URL. (Что, по иронии судьбы, сделало бы предупреждение IE6 об информации, «ретранслируемой на небезопасный сайт» менее вводящим в заблуждение.) Вместо этого используйте «303 См. Другое».

2 голосов
/ 16 марта 2009

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

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

...