Прежде всего, когда вы говорите, что храните «пароли» в базе данных, пожалуйста, убедитесь, что вы храните зашифрованные пароли.Если мой пароль «12345», а вы храните «12345» в своей базе данных, вы дали возможность кому-то, кто получает доступ к вашей базе данных, видеть пароли всех пользователей, и это ужасно плохо.
Поэтому, по крайней мере, используйте SHA1 или какой-либо другой алгоритм хеширования и сохраните , что , в базе данных.
Но, к вашему актуальному вопросу, PHP поддерживаетдля встроенных «сессий», так что вам не нужно беспокоиться о низкоуровневой механике.
Вызовите session_start();
вверху вашего скрипта (обычно в начале вашего файла конфигурации или заголовкафайл или другой общий сценарий, который включен везде), а затем вы можете сохранять и извлекать информацию в суперглобальном массиве $_SESSION
.
Таким образом, вы можете написать:
$_SESSION['username'] = 'bob';
И затемна другой странице:
echo 'Hello, ' . $_SESSION['username'];
Эта информация о сеансе будет доступна на любой странице, на которой было выполнено session_start();
, и все, что вы введете в $_SESSION
, будет сохранено только вклсервер, поэтому кто-то не может увидеть эту информацию, просто просматривая файлы cookie моего браузера.
Однако это не означает, что сеансы по своей природе полностью безопасны.Сеансы работают путем сохранения «ключа сеанса» в файле cookie, поэтому мой ключ может быть «946433D47A824675DCB87AA372F31A7D9B255530F87A79264E416C253E9AB00E».Каждый раз, когда я захожу на страницу, PHP извлекает все данные $_SESSION
, связанные с этим ключом, и делает их доступными для вас.
Но если кто-то обнаружит этот ключ (снова, скажем, просматривая файлы cookie моего браузера)или просто «подслушав» запрос, который я делаю на сервер через открытую сеть Wi-Fi), они могут отправить тот же ключ, и PHP с радостью предоставит им доступ к моему сеансу.
Если вы разрешите только трафикчерез https эта проблема в значительной степени смягчена, но все же определенно стоит понять, что происходит и как ее можно использовать в ситуациях, когда важна безопасность.