Я просто вхожу в приобретение знаний о сессиях, и в моих целях, я хочу создать что-то, что по каждому запросу от клиента, сервер аутентифицирует того пользователя и только затем выполняет обработку данных для того пользователя.
Однако я видел много примеров с CodeIgniter, где сессия настраивается как таким образом:
$this->load->library('session');
$newdata = array(
'username' => 'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
Однако кто-то не мог только создать cookie на их компьютере с общим именем пользователя и состоянием 'logged_in' к истинному, и внезапно Вы аутентифицируетесь без пароля? Это походит на дефект безопасности мне, но я вижу столько примеров как это.
Что надлежащий путь состоит в том, чтобы аутентифицировать пользователя по каждому запросу?
В файле application / config / config.php вашей установки codigniter вы можете выбрать шифрование файлов cookie.
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_encrypt_cookie'] = TRUE; // set from false to TRUE
Как только это будет установлено, методы set_userdata () и userdata () будут прозрачно обрабатывать шифрование и дешифрование данных сеанса.
Полный список параметров конфигурации сеанса codigniter находится внизу этой страницы: