Cross Cookies - viele Domains eine Seite ein Login

  • Moin,
    ich bin mal wieder am schrauben...
    Ich hab:
    Domain A (Hauptdomain)
    Domain B
    Domain C

    und nur eine Seite, welche über die 3 Domains erreichbar ist (SEO ist in diesem Fall irrelevant -> Hauptdomain für nicht eingeloggte). Ein Login auf jeweils einer der Seiten soll auch auf den den anderen laufen. Ich hab jetzt schon einiges quer gelesen, reicht von Bildern über Frames bis hin zu Popups... ich blicke es trotzdem nicht.

    Gibt es eine Möglichkeit, trotz Browserrestriktion, ein Login für versch. Domains zu nutzen?
    In meiner Sessions-Table vom aktuellen phpBB werden diverse "unique" Dinge gespeichert, aber ich komme doch nicht von Domain B an den Cookie von Domain A um das ganze zu vergleichen?!
    D.h. ich müsste dem User ein Cookie unterschieben, indem ich z.B. ein 1x1 großes Bild von jeder Domain einbinde, womit ich wieder bei restriktiven Browsern auf die Nase falle, die keine Kekse von 3. Anbietern zulassen...
    Frames finde ich im allgemeinen nicht so klasse - theoretisch müsste ich den Login von Domain B über einen frame oder iframe von Domain A laden und anschließend jeweils beim Aufruf von Domain B, über Domain A prüfen ob ein Cookie existiert, und dies dann wieder bei Domain B akzeptieren?! Ich komm damit nicht wirklich klar...

    Warum der Quark? Ich wollte dem registrieten User eine Auswahl der verfügbaren Domains anbieten und versuche das gerade über alle Domains zu handeln, damit der User sich nicht 2x einloggen muss, wenn er z.B. Domain C als Standard ausgewählt hat, aber über Google auf Domain A gelandet ist. Loggt er sich auf Domain A ein, erfolgt die Abfrage seiner persönlichen Auswahl und er wird auf Domain C weitergeleitet - kein Cookie, kein Login :shocked:

    Hab jetzt schon von externen Anbietern gelesen, die fallen aber raus! Gibt es da wirklich ein Problem oder hab ich zu viel :bierchen: und die Lösung ist total simpel?

    Grüße

  • Cross Cookies - viele Domains eine Seite ein Login

    ein Cookie sollte eigentlich immer nur auf der Domain gelten wo er gesetzt wurde.
    ansonsten vielleicht noch die Session per Get übergeben, aber das finde ich eher fragwürdig.
    Flashkekse sind meines Wissens unabhängig von der Domain.

    Ansonsten:
    Vielleicht wäre die Snoopy PHP Class ein Lösungsansatz. Der User schlägt auf A ein und erhält einen Keks. Wenn er dann auf B oder C ist wird mit der Snoopy Class geguckt ob er einen Keks für A hat.
    Ist allerdings nur eine Vermutung von mir. Ich habe mir die Snoopy Class bislang nur angeguckt um von einer Domain auf andere Domains zuzugreifen. Von anderen Domains auf eine Domain könnte aber auch gehen.
    Ich meine auch nicht, dass du unbedingt die Class selber nehmen sollst, aber den Lösungsansatz dadrin.

    Oder, halte ich für nicht glücklich, vor allem nicht wenn es sensiblere Daten sind, du löst es über eine Datenbank und die IP oder ähnliches. Aber das ist noch übler als die Sessin per Get zu übergeben.

    Nachtrag:
    Ich glaub ich hab es aber noch nicht wirklich verstanden.
    Wenn du auf B und C einen Login auf A machen willst, dann kannst du doch tun. Du kannst das Formular ja nach A schicken. Wenn das Ergebnis nur eine Weiterleitung sein soll, kannst du die ja dann von der SEite, die bei A aufgerufen wird, per PHP-Header ausführen lassen. Wenn der Login klappt, merkt der User gar nicht, dass er über A geleitet wurde. Und wenn der Login nicht klappt, kannst du die Fehlermeldung ja auf Seite A ausgeben in dem du ihn zurückleitest.
    Wenn er jetzt auf B einschlägt, sich über Login und Nachfrage an diese PHP Datei bei A anmeldet und von dort automatisch an C weitergeleitet wird, kannst du ja über A noch etwas mitgeben, was dann auf C das Setzen eines Cookies auslöst. Du könntest z.B. auf C eine Seite als Ziel nehmen, die den Referer überprüft (und gegebenfalls abgleicht), einen Cookie für C setzte und sofort auf das wirkliche Ziel auf C weiterleitet.
    Allerdings besteht hier natürlich die GEfahr sich selbst zu verknoten.

  • Cross Cookies - viele Domains eine Seite ein Login

    Cookies für fremde Domänen anlegen oder auslesen funktioniert nicht. Da kann man nur einen Umweg gehen über den externen Zugriff auf die eigentliche Domain. Bella sagte da was von Snoopy. Ist zwar eine tolle Klasse, aber doch schon sehr veraltet. Und funktioniert hier auch nicht wirklich. Wenn schon, dann braucht man ja das Cookie vom User. So wäre es aber wenn schon das Cookie vom anfragenden Server.

    Denkbar wäre eventuell ein Ansatz per Javascript und Ajax, das dann einfach einen Status 1 oder 0 an das PHP-Script übergibt. Ähnlich einem Trackingpixel, das man sich auch auf beliebigen Domänen von einem anderen Server einfängt. Also irgendwie in die Richtung. Seite B requestet per JS Seite A. Da werden dann Cookies von Server A gesetzt / ausgewertet. Seite A gibt dann nur einen Status zurück an "Seite B", die die Rückgabe dann innerhalb Seite B auswertet.

    Ob das aber geht weiß ich auch nicht, war jetzt nur so ein Ansatz. Kann sein, dass es da auch Sicherheitsbeschränkungen gibt.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Cross Cookies - viele Domains eine Seite ein Login

    Hallo,
    danke erstmal für eure Antworten - haben mich weiter gebracht!
    Theoretisch muss ich nichts "extern" weitergeben oder aufnehmen - ist schließlich nur eine Seite, die auf einem Space liegt, aber über x Domains erreichbar ist.

    Wenn der User unbekannt ist, wird er immer (auch wegen SEO) auf Domain A geleitet. D.h. er loggt sich dort ein. Wenn er eingeloggt ist und eine andere Domain ausgewählt hat, wird er auf z.B. Domain C weitergeleitet. Beim anschließenden Aufruf von Domain C müsste ich doch intern nur den Pfad umbiegen und eine Cookie-Anfrage von Domain A senden - Cookie existiert für Domain A (gerade eingeloggt) -> interne Weitergabe, dass User eingeloggt ist -> nächstes eingeloggt Cookie für Domain C - sollte doch theoretisch funktionieren?
    Wäre also die Weiterleitungsmethode von Bella - hoffentlich kloppen mir die Browser nicht dazwischen.
    Ich muss mal gucken wie die Sessions im phpBB gehandelt werden...

    Grüße