2013-09-03 3 views
0

Если я включаю «сохранение данных сеанса в базе данных», все данные сеанса сохраняются как в файле cookie, так и в db. в то время как это улучшает безопасность (у меня также есть все данные, зашифрованные), я хочу сохранить очень чувствительные данные сеанса, такие как «is_logged_in», «session-> set_userdata (« is_logged_in »,« 1 »);», только в DB .Библиотека сеансов Codeigniter - сохранение данных только в DB

Как это можно достичь? Спасибо.

+1

afaik, данные сеанса не сохранены в cookie. в cookie сохраняется только идентификатор сеанса. – Prasanth

+0

+1 [Sessionigniter Session - доступ к значению Userdata для всех пользователей из БД] (http://stackoverflow.com/questions/14907464/codeigniter-session-access-userdata-value-for-all-users-from-db) –

+0

Нет, в печенье. @Prasanth. Если вы отключили шифрование cookie. Содержание файла cookie: «% 3A4% 3A% 7Bs% 3A10% 3A% 22session_id% 22% 3Bs% 3A32% 3A% 22e00777979f9c821381910d4196361ea7% 22% 3Bs% 3A10% 3A% 22ip_address% 22% 3Bs% 3A9% 3A% 22127.0.0.1 % 22% 3BS% 3A10% 3A% 22user_agent% 22% 3BS% 3A74% 3A% 22Mozilla% 2F5.0 +% 28X11% 3B + Убунту% 3B + Linux + i686% 3B + с.в.% 3A20.0% 29% + Геккон 2F20100101 + Firefox% 2F20.0% 22% 3Bs% 3A13% 3A% 22last_activity% 22% 3Bi% 3A1378225370% 3B% 7D8c29441764063fb6f8c4f789ce9909fa «Это то же самое, что и в DB –

ответ

1

Использование сеансов CodeIgniter с базой данных будет очень надежным.

Что происходит с сеансом CodeIgniter, так это то, что сервер хранит файл cookie, и каждый раз, когда пользователь выполняет действие, которое изменит содержимое файла cookie, оно сначала сравнивается с предыдущим файлом cookie.

Есть другие защиты данных сеанса: refresh timeout (по умолчанию каждые 300 секунд), он проверяет, изменился ли IP-адрес, и если браузер изменился.

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

+0

Делает это означает, что я просто неправильно понял что-то, и CI действительно хранит данные, сохраненные с помощью session-> set_userdata() только в базе данных? –

+0

Если вы конфигурируете сеанс для хранения только в БД, сеанс очень безопасен. –

+0

Как настроить дату истечения срока действия cookie сеанса? –