В общем случае переменные сеанса будут намного более безопасными в том смысле, что пользователь не сможет редактировать их локально на своем компьютере.
Но реальный вопрос напрашивается: что вы ищете в магазине? Имея чуть больше информации, мы могли бы дать вам лучший ответ относительно того, где вы хотели бы ее хранить:)
Edit:
Если вы хотите сохранить пользовательские действия, я мог бы порекомендовать создать таблицу UserActions или что-то в этом роде. Таблица, содержащая следующее:
id INT (generic ID for the record),
timestamp TIMESTAMP/DATETIME (whatever your DB supports),
userid INT (lookup to the user table),
action VARCHAR (what action you want to record),
etc etc (whatever else you want to store)
Затем, когда пользователь выполняет действие, которое вы хотите записать, просто зарегистрируйте его в самой таблице, вместо того, чтобы заставить его перемещаться вместе с пользователем в сеансе / файле cookie. На самом деле самой странице не нужно знать, какие действия пользователь выполнял в прошлом, если только это не приложение типа «многошаговый мастер». В этом случае, вероятно, было бы лучше передать их как переменную сеанса.
Затем вы помещаете хранилище в настоящий компонент хранилища (являющийся базой данных) вместо сеанса / файла cookie в качестве хранилища.
Я имею в виду, что у нас до сих пор нет точного представления о том, что вы разрабатываете, но я надеюсь, что это поможет.