2013-11-30 2 views
1

Для проекта, над которым я работаю, компания попросила сохранить пароль на 90 дней, чтобы пользователь мог использовать свое имя пользователя для входа в систему, если оно не прошло 90 дней. Это для одного из тех заданий, когда отдел компьютерных наук передает вам внешнюю компанию. Я понятия не имею, как это сделать, поскольку это кажется ужасно неуверенным. Любые указатели на то, как это сделать? Моя первая мысль заключалась в том, чтобы использовать файл cookie для сохранения пароля, и если есть действительный файл cookie, просто восстановите пароль.Сохранить пароль на 90 дней

+0

В чем проблема с использованием базы данных? –

+0

@php_nub_qq Я просто смущен, как это сделать. Я никогда не строил ничего такого сложного. Наш учитель просто бросил нас в это. – todaroa

+0

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

ответ

3

Пожалуйста, не храните ПАРОЛЬ в COOKIE.

Вы можете сохранить другое значение, например [session_id не использовать это] last_login_time в cookie.

+0

Так что я мог бы сохранить passsword в сеансе, а затем извлечь его из файла cookie, используя, по сути, идентификатор сеанса. – todaroa

+0

@todaroa no dont предположить, что сеансы сохраняются на общем веб-хостинге ... прочитайте (опубликуйте мой) http://stackoverflow.com/questions/18262878/how-to-prevent-php-sessions-being-shared-between-different -apache-vhosts/18263063 # 18263063 –

+0

+1 просто для того, чтобы натянуть это. Очень небезопасно использовать файлы cookie для хранения любой важной информации о безопасности. –

2

Вы можете создать таблицу USER и сохранить соответствующие данные для пользователя там. Одним из полей USER будет дата истечения срока действия. Было бы так:

USER ( 
    id integer, 
    fullname varchar(50), 
    encpassword varchar(20), 
    email varchar(50), 
    .... some other fields 
    expDate date 
); 

Таким образом, когда пользователь в журнале вас на столе Чек, если фактическая дата меньше или равна expDate если вы позволите, то войти в систему. Таким образом, вы можете повторить проверку пользователя без дублирования пользовательских данных, просто изменив значение expDate.

Как сказал @raiserle, не храните ПАРОЛЬ в COOKIE, поскольку файл cookie остается на клиентской машине, его можно легко взломать, чтобы другие могли войти в систему как другой пользователь.

Я помещаю поле encpassword, потому что вы должны использовать некоторый алгоритм регистрации, чтобы зашифровать пароль пользователя.

+0

Как бы я пошел на сравнение дат, хотя. Я попытался использовать date_parse_from_format, но он просто разбивает мою страницу. – todaroa

+0

@todaroa simple as 'date1> date2' в mysql –

+0

Или просто с помощью функции mysql: 'expDate> = now()' –

Смежные вопросы