HTTP POST преобразование в HTTPS GET при перенаправлении через прокси-сервер
У меня есть домен кластера weblogic, который имеет следующую конфигурацию: 2 управляемых сервера, 1 сервер администратора и прокси-сервер. Мой веб-приложение развернуто на 2 управляемых серверах.
Порты SSL на обоих управляемых серверах включены, и я добавил ограничение данных пользователя как конфиденциальное в web.xml, чтобы порты SSL всегда использовались для связи с mywebapp.
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
Теперь вот вопрос:
HTTP-запрос клиента формы Internet Explorer для HTTP-порта прокси-сервера преобразуется в HTTPS GET, когда прокси-сервер перенаправляет запрос на SSL-порт одного из управляемых серверов. Следовательно, клиент Internet Explorer никогда не получает ответ HTTP POST.
Моя цель здесь - обеспечить HTTPS, даже если клиент использует HTTP. Есть ли проблемы с этой конфигурацией? Я хочу как-то запретить Internet Explorer конвертировать HTTP POST в HTTP GET при получении "302 найдено"
1 ответ
Если клиент получает HTTP 303 See Also
код, он безоговорочно отправит запрос GET. Если клиент получает HTTP 302 Found
, он должен отправить такой же тип запроса (POST) на перенаправленный URL с подтверждением пользователя. Это может не работать должным образом на старых браузерах, которые имеют тенденцию лечить 302 Found
как будто это было 303 See Also
,
В любом случае, иметь форму на незащищенной странице и отправлять данные на защищенную страницу - плохая идея.
Страница формы может быть повреждена и отслежена любым способом, который вы можете себе представить, и пользователь не может быть уверен, что данные, которые он отправляет, являются данными, которые он видит.
Пример: ваша форма имеет поле "MainData". Промежуточный фишинговый сайт может написать JavaScript, чтобы шпионить за введенными данными, поместить скрытое поле "MainData", содержащее все, что он пожелает, и показать фиктивное поле "FakeIgnoreData" для пользователя.
Решение. Поместите страницу формы и страницу отправки на один и тот же HTTPS-сервер.