Запомнить меня JavaScript? - PullRequest
0 голосов
/ 12 июня 2011

Как правильно написать скрипт для установки файлов cookie для запоминания имени пользователя и пароля пользователя при установке флажка в форме входа?

Также, если это можно сделать на PHP, пожалуйста, дайте мне знать.

Ответы [ 4 ]

2 голосов
/ 12 июня 2011

Лучший подход к хранению паролей, запоминающих пароли, - это сохранение в виде хэшей md5 вместе с некоторыми данными, специфичными для браузера.Например, вы храните такую ​​строку, как

username-4155b1b6e53ad73e06c4c58e709cdeea19915ea84de517500d9ba3280e27cf59

Например, вы можете сгенерировать эту строку в PHP следующим образом:

$string=$username.'-'.md5(substr($http_user_agent, 5, 10)) .md5($password).md5(substr($http_user_agent, 0, 10));

Наша цель - сделать нашу строку достаточно сложной.На этапе входа в систему мы извлекаем пароль md5 с помощью метода, который нам известен.

$somearray=explode('-', $string);
$username=$somearray[0];
$passwordmd5=str_replace(md5(substr($http_user_agent, 0, 10)),'',str_replace(md5(substr($http_user_agent, 5, 10)),'', $string));

, и теперь мы можем выполнить сравнение в нашей базе данных следующим образом:

select * from users where username='$username' and md5(password)='$passwordmd5';

HTTPАГЕНТЫ ПОЛЬЗОВАТЕЛЯ немного исключают риск несанкционированного использования строки cookie.Хотя неавторизованный человек украл куки, он не может использовать его с другим браузером.Если бы мы этого не сделали, кто-то с такой же строкой мог бы вести себя так, как если бы он имел пароль, и мог войти в систему как наш реальный пользователь.

0 голосов
/ 01 октября 2012
$somearray = explode('-', $string);
$username = $somearray[0];
$passwordmd5 = str_replace(md5(substr($http_user_agent, 0, 10)),'',str_replace(md5(substr($http_user_agent, 5, 10)),'', $string));
0 голосов
/ 12 июня 2011

Вы можете сделать как предложено @minitech, как указано выше.Однако хранить информацию о пароле в куки не очень хорошая идея.Его можно легко извлечь из компьютера.

Вам лучше сгенерировать одноразовый хеш, который можно использовать для однократного входа в систему и сохранить его в файле cookie.Однажды его использовали его недействительным.Несмотря на то, что он не совсем безопасен (примерно такой же безопасный, как и сеанс, принудительно установите https, если вы хотите, чтобы он был более безопасным), он не нарушает пароль пользователя.

Пользователи часто используют один и тот же пароль на нескольких сайтах.Если он скомпрометирован на одном сайте, проще получить доступ к учетным записям пользователей на других сайтах.

0 голосов
/ 12 июня 2011

В PHP установите cookie с информацией о сеансе (имя пользователя, пароль), скопировав соответствующие значения из $_SESSION в $_COOKIE, используя set_cookie.Когда пользователь посещает страницу, сначала проверьте наличие $_SESSION переменных, а затем $_COOKIE переменных.Если переменные $_COOKIE существуют, а переменные $_SESSION нет, скопируйте из $_COOKIE в $_SESSION.(То есть, если пользователь установит флажок.)

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