Sven Rautenberg: Session bricht spontan ab (unter neuer Domain, a-record)

Beitrag lesen

Moin!

ich habe ein seltsames Problem. Auf meinem Server habe ich ein session-basiertes Login-System. Alles funktioniert ohne Probleme, wenn ich die Seiten über meine Domain (www.xyz.de)aufrufe.

Ich habe jetzt noch eine Domain bei einem anderen Anbieter (www.xyz.link). Diese Domain leite ich per a-record auf meine Seite.
Mein Login-Sytem (aufgerufen mit neuer Domain) funktioniert zwar noch, jedoch bricht die Session immer spontan ab und loggt den User aus. Dieses Logout passiert mal eher und mal später und immer an anderen Stellen. Welche Ursache könnte das haben? Kommt php mit der Domain nicht klar? Ich bin verwirrt...

Wie schon vermutet, wird der Browser ein (sehr berechtigtes) Problem haben, ein Cookie für die eine Domain einfach so bei Requests auf die andere Domain mitzuschicken.

PHP hat grundsätzlich kein Problem damit, unter mehr als einer Domain zu laufen und je Domain Sessions zu haben. Das Problem beginnt dann, wenn irgendwo im Verlauf der Session ein Link aufgerufen oder ein Redirect ausgespielt wird, welcher nicht auf dieselbe Domain, aber auf denselben Inhalt zeigt. Ein Domainwechsel verhindert, dass das Session-Cookie mitgeschickt wird.

Ebenso ist natürlich ein Problem, wenn Code die Cookie-Parameter verändert, also z.B. explizit die gültige Domain für das Cookie setzt. Das verhindert ohne Beachtung der geänderten Situation mit zwei Domains ziemlich sicher ein korrektes Funktionieren.

- Sven Rautenberg