Как заставить только одну страницу открываться с SSL? - PullRequest
1 голос
/ 11 мая 2011

В моем проекте я использую SSL, но он работает для всех страниц. Я хочу использовать его только для страницы входа, после этой страницы он должен вернуться к протоколу HTTP. Как я могу это сделать? Я нашел способ ниже, но он не работает.

    <security-constraint>
    <web-resource-collection>
        <web-resource-name>Notify page, accessed internally by application</web-resource-name>
        <url-pattern>/Login.xhtml</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Entire Site</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>

Мой проект - проект JSF 2.0, я использую Eclipse Helios и Tomcat 7.0.

Спасибо.

1 Ответ

1 голос
/ 11 мая 2011

Это невозможно.Когда сеанс создается по запросу HTTPS, он недоступен для запросов HTTP.Лучше всего создать самостоятельно незащищенный файл cookie во время входа в систему и поддерживать его вместо этого.

Map<String, Object> properties = new HashMap<String, Object>();
properties.put("secure", false);
externalContext.addResponseCookie(name, value, properties);

Но подумайте еще раз об этом, какой смысл тогда входить в HTTPS?Если вы вернетесь к HTTP после HTTPS и захотите сохранить вход пользователя в систему, то вам потребуется установить cookie сеанса незащищенным.Таким образом, хакеры по-прежнему смогут прослушивать идентификатор сеанса в куки, чтобы выполнить взлом фиксации сеанса .При входе через HTTPS вы предотвращаете только то, что хакеры узнают о действительном имени пользователя / пароле, но это больше не имеет смысла, когда хакер вычисляет идентификатор сеанса в файле cookie.HTTPS все время после входа в систему.

...