Чтобы избежать сохранения данных сеанса на сервере, вы можете подписать содержимое, которое вы хотите защитить от изменений, перед сохранением его в сеансе, а затем проверить сразу после извлечения из сеанса. В PHP этот процесс достаточно прост и устраняет проблемы хранения на сервере.
Обратите внимание, что это не защищает данные сеанса от визуализации. Если вам нужна эта защита, вы все равно можете избежать хранения на сервере, используя безопасное шифрование. Просто имейте в виду, что практически каждая схема шифрования на основе размера ключа может быть взломана в ближайшем будущем. Поэтому, если вам нужно защитить данные сеанса, скажем, на 5 лет, безопасный выбор ключа и алгоритма может создать проблемы с производительностью.