Session von Server zu Server transportieren
Markus
- php
Hallo,
ich generiere auf Server1 eine Reihe von Sessionvariablen.
$_SESSION['A'];
$_SESSION['B'];
$_SESSION['C'];
$_SESSION['D'];
Ich möchte nun von einem Skript auf Server2 einen Upload durchführen, und danach (mittels header) wieder zurück zu Server1.
D.h. SERVER1 -> SERVER2 -> SERVER1
Dabei sollen die Sessionvariablen erhalten bleiben, damit auf Server1 wieder normal weitergemacht werden kann.
Wie kann ich alle Variablen auf einfache Art und Weise mitschleifen?
Oder wie soll ich am Besten vorgehen?
Gruß,
Markus
hi,
Ich möchte nun von einem Skript auf Server2 einen Upload durchführen, und danach (mittels header) wieder zurück zu Server1.
Dabei sollen die Sessionvariablen erhalten bleiben, damit auf Server1 wieder normal weitergemacht werden kann.Wie kann ich alle Variablen auf einfache Art und Weise mitschleifen?
Die Session-Variablen brauchst du nicht "mitschleifen" - die bleiben auf Server1 mindestens so lange erhalten, bis die Mindestlebensdauer einer Session abgelaufen ist.
Was du ggf. noch extra übergeben musst, falls der Nutzer keine Cookies akzeptiert, ist die Session-ID. An Server2 übergeben, und von dort beim Redirect zurück auf Server1 wieder als GET-Parameter an den URL anfügen.
gruß,
wahsaga
Hallo,
Was du ggf. noch extra übergeben musst, falls der Nutzer keine Cookies akzeptiert, ist die Session-ID. An Server2 übergeben, und von dort beim Redirect zurück auf Server1 wieder als GET-Parameter an den URL anfügen.
Ich benötige bei Server2 noch die UserID (die auf Server1 als Session vorhanden ist). Wie kann ich diese in möglichst sicherer Form von server1 auf server2 übertragen (dass diese nicht manipulierbar ist)?
Gruß,
Markus
Ich benötige bei Server2 noch die UserID (die auf Server1 als Session vorhanden ist). Wie kann ich diese in möglichst sicherer Form von server1 auf server2 übertragen (dass diese nicht manipulierbar ist)?
Kommt würde ich sagen drauf an wie die Kommunikation zwischen den beiden Servern abläuft. Empfehlen würde ich am ehesten das Ganze mittels cURL zu realisieren. Da kannst du zum Beispiel Daten mittels POST oder (irgendwie) auch per Cookie an den Server2 weiterleiten. Siehe dazu auch die curl_setopt-Funktion. Ist aber wenn du deine Daten nicht verschlüsselst genauso sicher wie die Kommunikation zwischen User und Server1, ähm...also gar nicht.
Hallo,
Kommt würde ich sagen drauf an wie die Kommunikation zwischen den beiden Servern abläuft. Empfehlen würde ich am ehesten das Ganze mittels cURL zu realisieren. Da kannst du zum Beispiel Daten mittels POST oder (irgendwie) auch per Cookie an den Server2 weiterleiten. Siehe dazu auch die curl_setopt-Funktion. Ist aber wenn du deine Daten nicht verschlüsselst genauso sicher wie die Kommunikation zwischen User und Server1, ähm...also gar nicht.
Also ich möchte eben die UserID nicht an http://www.example.com?U=24 übergeben müssen. Sind Session-Variablen denn nicht mittels URL übertragbar?
Gruß,
Markus
Also ich möchte eben die UserID nicht an http://www.example.com?U=24 übergeben müssen. Sind Session-Variablen denn nicht mittels URL übertragbar?
Könntest es mittels cURL auch noch per Header weiterreichen...siehe wieder curl_setopt, was aber noch immer nichts an der Sache ändert, dass es leicht auslesbar ist wenn man weiß, dass die beiden Server miteinander kommunizieren.
Ansonsten halt die Methode die Norbert vorgeschlagen hat. Aber so wie ich dich verstanden habe erfolgt ja zusätzlich noch ein HTTP-Request an Server2, oder? aber damit hättest du dann zwei Anfragen auf den selben Server die du auch mit nur einer Anfrage erledigen könntest.
Hallo,
mal als Vorschlag:
Wenn der User auf Srv1 auf den Link zum Upload clickt, wird auf Srv1 ein Script aufgerufen, was via fsockopen() alle notwendigen Daten an Srv2 uebermittelt, also SessionsID und UserID. Zum Schluss leitet es via header() den User an Srv2 wo er jetzt bekannt ist. Nach dem Upload schickst Du den User wieder an Srv1 zurueck und killst die ID's auf Srv2.
Gruss Norbert
hi,
Ich benötige bei Server2 noch die UserID (die auf Server1 als Session vorhanden ist). Wie kann ich diese in möglichst sicherer Form von server1 auf server2 übertragen (dass diese nicht manipulierbar ist)?
Du könntest bspw. $userId und md5($userId.$geheimeZeichenkette) übertragen - Server2 kennt $geheimeZeichenkette auch, und prüft dann nach, ob der MD5-Hash von $userId plus $geheimeZeichenkette mit dem übergebenen übereinstimmt.
gruß,
wahsaga
Hi,
Was du ggf. noch extra übergeben musst, falls der Nutzer keine Cookies akzeptiert,
Zu bedenken ist, daß Cookies nicht serverübergreifend zur Verfügung stehen.
Gruß, Cybaer
Moin!
Zu bedenken ist, daß Cookies nicht serverübergreifend zur Verfügung stehen.
Gibts nicht auch Cross-Domain-Cookies?
- Sven Rautenberg
Hi,
:)
Danke für den Link! :-)
Gruß, Cybaer
hi,
Was du ggf. noch extra übergeben musst, falls der Nutzer keine Cookies akzeptiert,
Zu bedenken ist, daß Cookies nicht serverübergreifend zur Verfügung stehen.
Das ist klar. Die Antwort bezog sich nur darauf, nach der "Rückkehr" von Server2 die Session auf Server1 wieder aufnehmen zu können.
gruß,
wahsaga