von Basti am 07.08.2008, 17:00
Ich würde dir raten, Sessions nur dort zu verwenden, wo sie auch wirklich benötigt werden. Denn Sessions und Cookies machen eigentlich nur Sinn, wenn du Daten seitenübergreifend weitergeben möchtest, beispielsweise für Logins oder ähnliches. Für größere Datenmengen, die auch aus einer Datenbank abgerufen werden könnten, machen Sessions eigentlich keinen Sinn, da dann ja auch immer noch eine extra Session-ID angehangen (oder bei Möglichkeit als Cookie gespeichert wird) und sich der Aufwand meiner Meinung nach nicht lohnt.
Um die Performance musst du dir bei MySQL-Abfragen jedoch keine Sorgen machen, ich würde sogar behaupten, dass dies besser für die Performance ist als alles in Sesssions zu speichern. Bedenke, dass sich durchaus viele verschiedene Besucher gleichzeitig auf deiner Seite aufhalten können. Wenn du dann für jeden das gesamte Profil in Sessions speichern möchtest belastet das den Server schon mehr als wenn du eine einfache MySQL-Anfrage an den Server schickst.
Der Aspekt Sicherheit ist bei Sessions eigentlich auch gut, da die entsprechenden Daten ja immer über eine relative lange Session-ID miteinander verknüpft sind. Allerdings sollte man zusätzliche Schutzmechanismen bei vertraulichen Informationen oder geschützen Zugängen, beispielsweise einen IP Vergleich integrieren, damit nicht gleich der Erwerb einer fremden Sessions-ID Zugang zu allen Daten des jeweiligen Benutzers gewährt. Ansonsten können Sessions aber eher schwierig manipuliert werden, da sie im Gegensatz zu Cookies ja serverseitig gespeichert werden.