Как я могу перенаправить на logon.jsp с незашифрованным паролем в HTTPSession? - PullRequest
0 голосов
/ 22 мая 2009

У меня есть веб-приложение j2ee, использующее аутентификацию на основе форм JAAS. Однако из-за некоторых необычных требований я не могу позволить пользователю ввести свое имя пользователя и пароль непосредственно в форму logon.jsp и попросить их отправить его. Вместо этого я должен собрать данные на отдельной странице, а затем перенаправить на logon.jsp, чтобы войти в систему.

Я собираюсь сохранить незашифрованное имя пользователя / пароль в HTTPSession. Когда я готов к аутентификации, я использую response.redirect для маршрутизации в logon.jsp. В logon.jsp я извлекаю имя пользователя и пароль из сеанса, заполняю стандартную форму «j-security-check» и затем использую javascript для отправки формы.

Насколько это дыра в безопасности? Мне неудобно перенаправлять запрос на переход к logon.jsp через браузер (это делает редирект), потому что кто-то может получить доступ к сеансу и, следовательно, незашифрованный пароль. Если я использую HTTPS / SSL, это вероятная ситуация? Как это будет эксплуатироваться?

Я смотрел на вызов сервлета входа непосредственно в JSP без использования формы, но это не представляется приемлемым вариантом, особенно из-за того, что я потерял изоляцию от разных контейнеров / серверов приложений J2EE.

Кто-нибудь понял, как я могу ограничить эту дыру в безопасности? Будет ли лучше использовать пересылку, а не перенаправление, потому что она не возвращается в браузер?

Насколько это плохо?

Ответы [ 3 ]

1 голос
/ 25 мая 2009

Кажется, что такую ​​практику очень легко охарактеризовать как ужасающую, но гораздо сложнее объяснить почему она ужасна или как ее можно использовать в ситуации, когда используется SSL. Мы постоянно передаем нашу конфиденциальную информацию в руки HTTPS / SSL, я не вижу, как это отличается.

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

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

0 голосов
/ 22 мая 2009

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

Другими словами. Это ужас . Не делай этого.

0 голосов
/ 22 мая 2009

Похоже, вы отправляете пароль обратно пользователю, чтобы пользователь мог повторно отправить форму в настоящий login.jsp. Это звучит ужасно Battlefield Earth для меня. Предполагая, что пользователь вводит пароль после ввода имени пользователя, может ли форма пароля не просто отправляться непосредственно обработчику входа в систему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...