Spring документация говорит, что запомнить осуществляется хранение следующей информации в куки -Spring управление аутентификации безопасности уязвимости
base64 (имя пользователя + ":" + ExpirationTime + ":" + md5Hex (имя пользователя + ":" + ExpirationTime + ":" + пароль ":" + ключ))
у меня есть следующие неурядицы -
Почему использовать n небезопасный хеш, например MD5, для обработки информации вместо использования SHA-1 или SHA-2. Будет ли производительность удачной от них быть значимой для такой небольшой части информации?
Зачем передавать эту информацию по сети вообще? Почему бы не сохранить карту криптографически безопасного случайного числа и эту информацию на сервере, возвращая только ключ карты в качестве файла cookie. AFAIK - это подход, используемый API Servlet, и считается более безопасным.
Переопределение makeTokenSignature() выглядит неплохим способом, так как я не думаю, что SHA-2 можно сломать. Интересно, в каком случае нужно было бы использовать постоянный подход к токенам вообще. –
Потому что подход настойчивости гораздо более безопасен вообще. Предоставление никакой информации о пароле всегда лучше, чем отправка зашифрованного пароля. - Но это обсуждение, как правило, является теоретическим. - В любом случае, я предпочитаю упорный подход к токенам, потому что это позволяет использовать дополнительные функции, такие как удаление такого токена. – Ralph
Постоянный подход к токенам определенно лучше, но я не уверен, что небезопасно использовать MD5 в этом сценарии, где он в основном используется в качестве подписи. Вам понадобится доступ как к хэшированному паролю, так и к ключу, который воспроизводит хеш MD5. – sourcedelica