Существует два основных способа поддержания состояния сеанса: на сервере или на клиенте.
При использовании серверного подхода вы сохраняете данные сеанса в файлах, базе данных или в памяти на сервере и назначаете им идентификатор. Этот идентификатор сеанса затем отправляется клиенту и обычно сохраняется в файле cookie (хотя они также могут быть встроены в URL-адреса). Затем с каждым запросом идентификатор сеанса клиента считывается и используется веб-приложением для загрузки данных сеанса, где бы они ни хранились на сервере. Таким образом, клиент никогда не имеет доступа к каким-либо данным сеанса и не может их подделать, но недостатком является то, что вы должны защищать от перехвата сеанса с помощью устаревших идентификаторов сеансов вредоносными клиентами. Это модель, используемая сегодня большинством веб-фреймворков и приложений.
Другой подход заключается в полном хранении данных сеанса на стороне клиента внутри файлов cookie. Недостатком этого подхода является то, что данные могут быть просмотрены и подделаны клиентом, поэтому вы должны позаботиться о том, чтобы правильно подписать и зашифровать данные, чтобы предотвратить подделку. Это где хороший секретный ключ вступает в игру. Плюс в том, что вам также не нужно беспокоиться об угоне сессии.
Pylons использует сеансы Beaker, которые можно настроить для полного хранения данных сеанса на стороне клиента . Вот почему вам нужен секретный ключ.
CherryPy только сохраняет данные сеанса на сервере, а затем отправляет пользователю файл cookie с идентификатором сеанса, поэтому клиент никогда не видит данные сеанса и не может их изменить. Вы можете настроить его для использования файлов или просто хранить все в памяти. Вы даже можете подключиться к нему и использовать базу данных для хранения данных сеанса.
Лично я предпочитаю подход, используемый CherryPy, так как это тот же подход, который используется большинством Интернета. Его легче защитить, и вы можете легко обмениваться данными сеанса с другими приложениями, работающими на вашем сервере, не беспокоясь о шифровании или ключах.