Является ли это разумным способом реализации функциональности "Запомни меня"?


Если пользователь заходит на сайт и говорит "Запомни меня", мы получаем уникальный идентификатор пользователя, шифруем его с помощью RijndaelManaged с размером ключа 256 и помещаем его в файл cookie httponly с установленным сроком действия say.. 120 дней, срок действия обновляется каждый успешный запрос на сервер.

При необходимости мы генерируем вектор инициализации на основе агента пользователя и части ipv4-адреса (последние два октета).

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

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

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

С нетерпением жду, когда тебя унизят. ;), Овации.

3 7

3 ответа:

Очень похожий вопрос.

Решение вашего вопроса находится в этом блоге

" Постоянный Файл Cookie Входа Лучше Всего Практика", описывает относительно безопасный подход к реализации знакомый вариант "Запомни меня" для web места. В этой статье я предлагаю следующее: улучшение, которое сохраняет все преимущества такого подхода, но и дает возможность определить, когда постоянные куки была украдены и использованы Ан атакующий.

Как говорит Джакко в комментариях: для получения подробной информации о безопасной аутентификации прочитайтеокончательное руководство по аутентификации веб-сайта .

Вы рассматривали что-то вроде Open Id? Как так использует.

Насколько важна информация, которая запоминается? Если это не будет что-то очень личное или важное, просто поместите GUID в печенье.

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

Использование грубой силы для поиска GUID нелепо, так как есть 2128 возможности.