Spring аутентификация, использует ли он зашифрованные куки? - PullRequest
3 голосов
/ 15 января 2010

Использует ли Spring Framework (или в одном из поддерживаемых им вариантов) зашифрованные файлы cookie, которые хранят идентификатор пользователя, вошедшего в систему, в файле cookie?

Так работает аутентификация ASP.NET, когда она шифрует значение в файле cookie, обычно это userId или username.

Это то, что делает Весна? (Я понимаю, что Spring позволяет вам выбирать, но в целом это самый распространенный подход?)

Ответы [ 2 ]

4 голосов
/ 15 января 2010

У меня нет источника, чтобы доказать это, но ответ на вопрос - нет.

Spring Security обрабатывает все на стороне сервера. Единственный файл cookie на клиенте - это файл JSESSIONID, а структура безопасности просто проверяет наличие объекта аутентификации / принципала в сеансе запроса (по крайней мере, при настройке по умолчанию).

Я не понимаю, почему вы должны хранить какую-либо информацию аутентификации в cookie-файле клиента, если вы можете просто сохранить sessionID и отслеживать детали аутентификации и состояние на стороне сервера.

0 голосов
/ 15 января 2010

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

На случай, если вам интересно, что такое «детская кроватка». см. FAQ по криптографии (03/10: Базовая криптология) :

Криптоаналитические методы включают в себя то, что известный как practical cryptanalysis'': the enemy doesn't have to just stare at your ciphertext until he figures out the plaintext. For instance, he might assume шпаргалки '' --- отрезки вероятный открытый текст. Если кроватка исправить тогда он мог бы выведите ключ и затем расшифруйте Остальная часть сообщения. Или он может эксплуатировать `` изологи '' --- то же самое открытый текст, зашифрованный в нескольких криптосистемы или несколько ключей. Таким образом он может получить решения, даже когда криптоаналитическая теория говорит, что он не есть шанс.

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

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