Например, насколько безопасно было бы сделать следующее для входа пользователя в систему: (set_userdata
просто устанавливает переменную $_SESSION
).Насколько безопасно использовать данные для входа в сеанс PHP?
$sess_array = array(
'id' => $row->id,
'username' => $row->username
);
$this->session->set_userdata('logged_in', $sess_array);
(от http://www.iluv2code.com/login-with-codeigniter-php.html)
А чтобы проверить, имеет ли этот массив действительный идентификатор и имя пользователя на каждой странице, чтобы убедиться, что пользователь вошел в систему? Сохраняет ли идентификатор удостоверение личности (если обычный пользователь не может найти этот идентификатор)?
Я лично избегаю использования имени пользователя в сеансе, потому что можно обнюхать переменные сеанса. Если вы хотите более безопасно, вы можете создать новый случайный хеш, когда они войдут в систему, сохраните его в записи пользователя db и в сеансе, а затем сравните эту загрузку каждой страницы. Тогда у вас практически нет утечки информации, и было бы гораздо труднее подменить хороший хэш SHA1, чем угадать/подделать идентификатор и имя пользователя. –
Не содержит ли codeigniter свою собственную библиотеку регистрации? Почему вы катаетесь самостоятельно? –
Нет стандартного, и я не боюсь сделать его самостоятельно. Раньше я делал сеансы базы данных, но я в основном интересовался безопасностью этого кода, используемого в учебнике. –