habe die Sessions bewusst anstatt Variablenübergabe via URL eingesetzt, da ich nur die Artikelnummer als Variable in der URL haben will. Dann wollte ich mittels mod_rewrite meinen Shop suchmaschinenfreundlich machen also die eigentliche URL artikel.php?artnr=1234 serverseitig in artikel/artnr/1234.htm umwandeln.
Vielleicht hast Du Dich auch nur vertippt, aber eine URL mit Fragezeichen ist alles andere als suchmaschinenfreundlich. Was die URL (Artikelanzeige) mit der Session (Warenkorb) zu tun hat, ist mir davon abgesehen nicht so ganz klar.
Ist es nicht auch ein Sicherheitsrisiko, Variablen (z.B. Suchbegriffe) in der URL zu übergeben?
Nein, nicht generell. Dein Beispiel "Suchbegriffe" ist ganz im Gegenteil sogar eines, bei dem die Übergabe in der URL sehr viel Sinn macht, denn anders kann man seinen Freunden/Bekannten/Verwandten nicht zeigen, was es bei Dir alles Tolles zum Thema X gibt - ok, man könnte sagen "gehe auf Seite suche.cgi und gibt X ein", aber das wird bei komplexeren Suchaktionen deutlich schwieriger als das Kopieren der URL der Ergebnisseite.
Problematisch ist hingegen zweifelsohne das Übergeben einer Session-ID, von Benutzernamen oder gar Passworten in der URL.
Darüber hinaus gibt es immer wieder Probleme, die nicht direkt mit der URL und ihren Parametern zusammenhängen, sondern mit dem sorglosen Umgang mit Variablen in den verarbeitenden Skripten selber.
Außerdem hat man immer das Problem, wenn man die Session nicht schon von Anfang an erzeugt, dass die Session verloren gehen kann, wenn der User über den Browser Back zurück auf eine Seite geht, die noch keine Session besitzt
Erstens geht die Session damit nicht verloren, sondern sie wird auf dieser einen Seite lediglich nicht angezeigt. Sie ist aber trotzdem weiterhin aktiv und sollte auch auf dieser Seite weiterhin nutzbar sein; der "In den Warenkorb legen"-Klick befördert beispielsweise in jedem Fall den Session-Keks wieder zum Server, egal ob auf der Seite ein Warenkorb angezeigt wurde oder nicht. Cookies sind server-, nicht seitengebunden.
Und zweitens helfen in solchen Fällen (so es denn wirklich nötig ist) meistens Vorgaben zum Cache-Verhalten. Oder ein einfacher Reload.
(Ach wäre die Welt doch wunderbar einfach, wenn jeder Cookies aktzeptieren würde...;-))
Seiten, die ungefragt und vor allen Dingen ohne erkennbaren Nutzen für den Besucher Cookies setzen, tragen maßgeblich dazu bei, daß manch einer Cookies nicht akzeptiert - dazu zählen auch Läden, die mit Cookies um sich werfen, ohne daß man etwas kaufen will. Lass Dir das mal durch den Kopf gehen :)
Gruß,
soenk.e