У меня в настоящее время есть веб-сайт, который позволяет моим посетителям входить в систему с помощью простого сценария, который я вставил вместе и записал. В настоящее время я только использую сессии для хранения посетителей зарегистрированными. Там какие-либо преимущества к добавляющим cookie к моему веб-сайту для хранения зарегистрированного состояния пользователя?
Или есть ли в целом лучший путь?
использование PHP
@Ramiro Gonzalez Maciel, он сказал, что создал этот сценарий, ему не нужны фреймворки, чтобы брать их в качестве примеров. Фреймворки обычно содержат хорошо обернутые сценарии.
Чтобы ответить на этот вопрос:
Я обычно сохраняю в cookie несколько строк md5, которые объединены из его md5 (пароля) и его имени пользователя, поэтому я буду знать, что в следующий раз он войдет на мой веб-сайт, на котором был выполнен вход, поэтому я бы не стал не заставляю его снова входить в систему
мой пример:
<?php
$username = $_POST['username'];
$password = $_POST['password'];
// sql and escape stuff witch will return 1 if he has entered a valid login
if($sqlreturn == 1){
// do login
$wraplogin = md5($username."-".md5($password)."-".SECRET_KEY); // I always define a define('SECRET_KEY', 'mysecretkey'); in global file.
// now you can store that $wraplogin in cookies and remember his login. Next time he enters the website, you read that cookie, compare it with what you have in your database and let him in.
}
?>
Теперь я знаю, что это не лучший пример, но я лично использовал его на очень больших веб-сайтах (> 500 000 пользователей), и ни один из них еще не взломан :)
Это преимущество файлов cookie для входа в систему.
Удачи.
Если вы используете сеансы PHP, вы используете файлы cookie. PHP хранит идентификатор сеанса в файлах cookie, а данные сеанса - в файле на диске на вашем веб-сервере.
Веб-фреймворки (сервлеты Java и другие) обычно используют файлы cookie для идентификации сеансов; другой обычный вариант - параметры URL. Итак, если вы используете какую-либо веб-платформу, она, вероятно, уже использует файлы cookie для хранения идентификатора сеанса. Web Framework будет использовать этот идентификатор для идентификации объекта сеанса в каждом запросе. Хотя файлы cookie сохраняются после перезапуска сервера, поскольку они хранятся в браузере, объекты сеанса обычно не сохраняются, если вы не настроили постоянство сеанса.
Если вы хотите, чтобы пользователи выполняли «автоматический вход», как в обычном варианте «вспомни меня», реализуемом на многих веб-сайтах, вам придется сохранять объекты сеанса, если ваша структура это обеспечивает. Или реализовать аналогичную систему, используя файлы cookie для хранения «токена входа в систему» и проверяя этот токен, когда пользователь обращается к системе, чтобы автоматически регистрировать их или отправлять их на страницу входа. (Изменить: как предлагает Михай в другом ответе)
Если вы хотите реализовать свой собственный метод, я предлагаю проверить, как популярные веб-фреймворки реализуют это, особенно аспекты безопасности и конфиденциальности хранения пользовательских данных в файлах cookie.