Вы сделали много предположений из некоторых базовых примеров, которые не совсем верны.
Контроллеры должны содержать взаимодействие логика.
Это означает, что ваши контроллеры должны просто сказать, какие модели, представления, библиотеки и т. Д. Следует использовать в зависимости от того, что делает пользователь.
Модели содержат данные логика.
Это может быть ваша бизнес-логика, расчеты налогов, всякая работа с данными. Примеры в руководстве пользователя предлагают просто использовать Models в качестве «оболочки для базы данных», но вы можете делать с ними все что угодно. Простая модель представляет ваши данные, а остальная часть вашего приложения не должна заботиться о том, откуда они пришли.
Мои модели содержат смесь анализа файлов XML, вызовов методов REST и, конечно, некоторых запросов ActiveRecord.
Просмотры просто показывают вещи, поэтому не имеют представления о состоянии входа / выхода. Вы, конечно, должны сообщить об этом своему контроллеру (или глобальному коду, например MY_Controller , который ИМХО нужен практически каждому приложению приличного размера).
Сессии, хранящиеся в виде зашифрованных файлов cookie, совершенно безопасны. Они смогут декодировать их только в том случае, если они знают ключ шифрования вашего приложения, но это очень маловероятно, если вы не установите его; в этом случае вы сами виноваты.
Если хранение сеансов в файлах cookie не является вашей чашкой чая, вы можете сохранить значения сеансов в базе данных, чтобы сделать их еще более безопасными, или взять другую библиотеку сеансов для работы.
В CodeIgniter следует помнить, что он предлагает только способы работы, если вам это не нравится, расширение, переопределение или замена.