2009-03-27 3 views
7

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

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

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

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

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

Ожидание смирения;), Cheers.

+0

Возможный дубликат [Что является лучшим способом реализовать «запомнить меня» для веб-сайта?] (Http: // stackoverflow.com/questions/244882/what-is-the-best-way-to-implement-remember-me-for-a-website) – user

ответ

6

Very similar question.

Решение вашего вопроса в этом blog post

«Persistent Логин Cookie Best практике,» описывает относительно безопасного подхода к осуществлению знаком «Запомнить меня» вариант для web сайтов. В этой статье я предлагаю усовершенствование , которое сохраняет все преимущества этого подхода, но также позволяет обнаружить, когдапостоянный файл cookie для входа был украден и использован злоумышленником.

Как Jacco говорит в комментариях, потому что в глубине информации о безопасной аутентификации чтения The Definitive Guide To Website Authentication.

+0

Супер, мне следовало бы поискать лучше;) приветствия. – meandmycode

+0

Вы должны прочитать оригинальное сообщение: http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice/. – Jacco

+0

«Улучшенная» версия не предлагает никаких улучшений. См. Также: http://stackoverflow.com/questions/549/the-definitive-guide-to-website-authentication-beta#477579 Существует также объяснение проблемы где-то в комментариях к «улучшенной» версии. – Jacco

0

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

+0

Привет, Джош, на самом деле сайт может использовать openid в будущем, но помните, что мне по-прежнему нужна функциональность помните, кто вы утверждаете, что он соответствует нашей базе данных пользователей. – meandmycode

0

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

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

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

+0

Адресная информация о потенциале и истории заказов, также да ip-страница является необязательной, учитывая проблемы с прокси-серверами в некоторых сетях. – meandmycode