Сессии и куки - PullRequest
       21

Сессии и куки

5 голосов
/ 24 мая 2010

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

Или есть ли вообще лучший способ?

с использованием PHP

Ответы [ 3 ]

4 голосов
/ 24 мая 2010

Если вы используете сеансы PHP, то вы используете куки. PHP сохраняет идентификатор сеанса в файлах cookie и данные сеанса в файле на диске вашего веб-сервера.

3 голосов
/ 24 мая 2010

@ Рамиро Гонсалес Масиэль сказал, что создал этот сценарий, ему не нужны фреймворки, чтобы брать его в качестве примеров. Фреймворки, как правило, содержат сценарии в хорошем состоянии.

Чтобы ответить на этот вопрос:

Обычно я сохраняю в 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 для части входа.

Удачи.

1 голос
/ 24 мая 2010

Веб-фреймворки (Java-сервлеты и другие) обычно используют файлы cookie для идентификации сеансов; другая обычная опция - параметры URL. Итак, если вы используете какой-либо веб-фреймворк, он, вероятно, уже использует файлы cookie для хранения идентификатора сеанса. Web Framework будет использовать этот идентификатор для идентификации объекта Session в каждом запросе. Несмотря на то, что файлы cookie сохраняются после перезапуска сервера, поскольку они хранятся в браузере, объекты сеанса обычно не сохраняются, если вы не настроили сохранение сеанса.

Если вы хотите, чтобы пользователи автоматически входили в систему, как в обычной опции "rembember me", которую реализуют многие веб-сайты, вам придется сохранить объекты Session, если ваша инфраструктура обеспечивает это. Или внедрите аналогичную систему, используя куки для хранения «авторизованного токена» и проверяя этот токен, когда пользователь обращается к системе, чтобы автоматически регистрировать их или отправлять на страницу входа. (Изменить: как Михай предлагает в другом ответе)

Если вы хотите реализовать свой собственный метод, я предлагаю проверить, как это реализуют популярные веб-фреймворки, особенно аспекты безопасности и конфиденциальности хранения пользовательских данных в файлах cookie.

...