Markus: Session von Server zu Server transportieren

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

  1. 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

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. 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

      1. 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.

        1. 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

          1. 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.

      2. 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

      3. 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

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
    2. 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

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      1. Moin!

        Zu bedenken ist, daß Cookies nicht serverübergreifend zur Verfügung stehen.

        Gibts nicht auch Cross-Domain-Cookies?

        Ja, gibt's.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. Hi,

          Ja, gibt's.

          :)

          Danke für den Link! :-)

          Gruß, Cybaer

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      2. 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

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }