как работает сессия php?какой метод шифрования он использует - PullRequest
1 голос
/ 04 февраля 2011

Вот пример того, что мне интересно.

<?php
    session_start();
    $_SESSION['name'] = "mike";
    $_SESSION['lname'] = "donwell";
    $_SESSION['address'] = "111 north welding ave.";

    print $_SESSION['name'] . "<br/>";
    print $_SESSION['lname']. "<br/>";
    print $_SESSION['address']. "<br/>";

?>

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

Кроме того, в целях безопасности я могу просматривать сеансы на моем сайте и его значения?так как он всегда зашифрован?

спасибо

Ответы [ 3 ]

5 голосов
/ 04 февраля 2011

Сеансы по умолчанию не зашифрованы. Данные просто хранятся в сериализованном виде во временном каталоге на жестком диске сервера. Это может быть изменено путем переопределения функций обработки сеанса .

Например, вы можете использовать базу данных для хранения данных сеанса, а также для их шифрования.

Значение PHPSESSID, которое вы видите, является просто MD5-идентификатором файла сеанса, назначенного текущему сеансу браузера.

0 голосов
/ 04 февраля 2011

Необработанные данные сеанса не являются общедоступными. По умолчанию php записывает данные сеанса в путь вне вашего корневого каталога / htdocs. Путь сохранения сеанса может быть установлен в php.ini (session.save_path). Пользователь может получить доступ только к данным сеанса, связанным с его идентификатором сеанса (по умолчанию они хранятся в файле cookie).

Я не верю, что php шифрует данные сеанса перед их сохранением (они только что сериализованы). ИМО, вы должны использовать пользовательский обработчик сеанса. Вы будете иметь гораздо больший контроль над тем, где хранятся данные, как они кодируются и доступны (например, с помощью уникального идентификатора в cookie). Многие фреймворки включают в себя пользовательский обработчик сеанса (у Kohana 3 есть хороший;)).

Документ об использовании пользовательского обработчика сеанса: http://www.php.net/manual/en/function.session-set-save-handler.php

Редактировать: Обновлено на основе комментария Мчла

0 голосов
/ 04 февраля 2011

Ваши данные сеанса не зашифрованы. Эта зловещая строка является просто чем-то очень случайным хэшем, может быть MD5-хэшированием (см. MD5 () - функция), но она не имеет смысла, и не было бы никакой причины пытаться ее расшифровать. и сессии являются частными, так что никто не может видеть это, кроме посетителя и администратора сайта. Но если кто-то пользуется сеансовым ключом через сетевой сниффинг или трояном на вашем ПК, то он может дать настройке propper аутентифицироваться как вы ... это называется перехват сеанса.

Лучший

Раффаэль

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