Использование сеансов CodeIgniter с базой данных будет довольно безопасным. Вам просто не нужно доверять входным данным, которые дает пользователь. Даже если вы используете AJAX, сеанс CodeIgniter будет работать так же, как и любой стандартный вызов, поэтому такая же защита сохраняется.
Что происходит с сеансом CodeIgniter, так это то, что сервер сохраняет куки, и каждый раз, когда пользователь выполняет действие, которое может изменить содержимое куки, он сначала сравнивается с предыдущим куки.
Если пользователь изменяет содержимое cookie сеанса в браузере, CodeIgniter уведомит об этом при следующем вызове сервера и создаст новый сеанс для пользователя, в основном выйдя из него.
CodeIgniter на самом деле не нуждается в данных, хранящихся в cookie в браузере пользователя, и до тех пор, пока вы используете
$this->session->userdata('userid');
вы получите надежные данные на стороне сервера. Пользователь не может изменить это. Кроме того, куки могут быть зашифрованы, и вы должны иметь его в зашифрованном виде. Просто посмотрите в config.php CodeIgniter.
Существует несколько других средств защиты данных сеанса: короткое время обновления (обычно 300 секунд), оно проверяет, изменился ли IP-адрес и изменился ли браузер. Другими словами, в худшем случае единственный способ подделать данные сеанса - это иметь одну и ту же версию браузера, иметь тот же IP-адрес, получить прямой доступ к компьютеру для копирования / вставки cookie и выполнить это. в течение 5 минут.
Итак, следите за парнем, сидящим рядом с вами!