Ограничить SSL только для страницы входа - PullRequest
3 голосов
/ 05 апреля 2011

Как настроить сервлет для использования SSL только для страницы входа, а затем использовать обычный HTTP для остальной части приложения.Если я делаю специальное предложение для страницы входа, требующей SSL, и одного для остальных страниц, и использую проверку подлинности формы с указанием на страницу входа, которую я настроил ранее для использования SSL, когда пользователь запрашивает защищенную страницу, URL-адресв панели это не login.page, это запрашиваемая страница, но тело - это форма для входа, и я могу войти без использования HTTPS.Спасибо ..

Ответы [ 3 ]

4 голосов
/ 05 апреля 2011

Мне жаль это говорить, но, похоже, вы хотите сделать что-то не так. Почему вам нужен https после входа пользователя в систему, так это то, что без него сессия может быть легко взломана, поскольку куки сессии видны в виде простого текста. Конечно, нужно было бы находиться в одной сети или, возможно, даже подделать IP-адрес, но с таким количеством сетей WiFi это на самом деле просто (поскольку большинство пользователей не знают, как их защитить).

Таким образом, если вы не развертываете свое приложение в среде управления (только для локальной сети, ограниченное число пользователей больше или меньше - но зачем вам в любом случае нужен SSL в таком случае?), Вам, вероятно, понадобится https постоянно.

0 голосов
/ 13 сентября 2013

У нас такое же требование - мы абсолютно должны иметь зашифрованный логин, потому что пароль отправляется, но мы не хотим остальная часть связи зашифрована, потому что это вычислительно интенсивный.

Руководство по настройке SSL Tomcat 7 четко говорит:

"Любые страницы, для которых абсолютно необходимо защищенное соединение, должны проверить тип протокола, связанный с запросом страницы, и предпринять соответствующие действия, если https не указан."

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

В качестве грубого обходного пути, которое идет на компромисс по второму требованию, является отключение обычного коннектора HTTP на порту 8080 после включения коннектора HTTPS на порту 8443 (например).

0 голосов
/ 05 апреля 2011

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

http://download.oracle.com/javaee/5/api/javax/servlet/ServletRequest.html#isSecure%28%29

...