Problem mit SSL und SESSION

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem mit SSL und SESSION

    Hallo ich schon wieder =P.

    Ich habe das Problem, dass ich mein Loginscript über eine SSL subdomain laufen lassen wollte. Problem ist aber, dass die Session dann nur für die Subdomain gültig ist, ich sie aber eigentlich für die Hauptdomain benötige.


    Meine Aufbaustruktur:
    root = hauptdaten der Webseite
    login = ordner für die subdomain mit ssl. => login.meineseite.de

    So das dachte ich mir schon vorher, dass es Probleme geben könnte.

    Das Formular zum Login liegt im root, und das dazugehörige script liegt im ordner login.
    Da der Login verschlüsselt sein soll.

    Problem ist jetzt, dass ich eine Session schreibe. Und diese Session wird ja dann natürlich für
    den Ordner login geschrieben, brauchen tue ich die Session aber natürlich für das Root verzeichnis.

    Zugriff auf die php.ini hab ich leider nicht.

    Gibt es eine möglichkeit das dennoch hinzubekommen? =)
  • d0nut schrieb:

    Mach dich am besten mal mit den Begriffen "3d Party Cookie" oder "Cross Domain Cookie" vertraut:
    davidthielen.info/programming/2005/09/cross_domain_co.html


    Hey danke schonmal für den Tipp. Bevor ich mich jetzt da nachher um sonst einarbeite.

    Also mein komplettes Script läuft mit der Session. Also fast jede SQL abfrage, benötigt die session wo die userid drin ist.
    Da würde sich nichts ändern, wenn ich entweder Cross Domain Cookie oder 3d Party Cookie benutze?
  • d0nut schrieb:

    achso.. vergiss das.. du kannst das Cookie auch für .hauptdomain.tld erstellen.
    Dann kannst du von sub.hauptdomain.tld und auch von hauptdomain.tld darauf zugreifen.


    Hey vlt brauch ich auch gerade mal wieder was länger um das zu verstehen. Aber ich glaube ich bräuchte es eher umgekerht.

    im root liegen alle wichtigen script dateien. also auf .hauptdomain.tld die login.php beinhaltet das formular also emailadressen und passwort feld. und der form action tag der auf login.hauptdoman.tld weiterleitet.
    und dort liegt das script, was die session festlegt, wenn die eingabe true ist. und dann wird wieder weitergeleitet nach hauptdomain.tld. wo ich dann natürlich nicht eingeloggt bin, da die session auf die domain login.hauptdomain.de geschrieben wurde und nicht hauptdomain.de

    Also die session soll erst auf der ssl subdomain login.hauptdomain.tld erstellt werden. aber für hauptdomain.tld benutzbar sein

    Oder meintest du das damit? :)
  • Ich glaub das ist jetzt eine doofe frage. aber das heißt eigentlich, dass ich eher mit cookie's arbeiten soll, anstatt mit sessions?
    aufjedenfall für die userid?


    ich könnte natürlich auch alle daten im root lassen, und dann über das root verzeichnis eine ssl verschlüsselung legen. aber die komplette seite verschlüsseln wäre sinnlos oder?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Snowflake ()

  • Achso. Wird SSL denn von jedem Browser akzeptiert?

    Und die andere Frage, also wenn ich auf die SSL gesicherte domain gehe, kommt halt die Frage, ob man es temporär zulassen will, für die ganze zeit oder gar nicht.
    Das heißt, dass ich kein zertifiziertes SSL Zertifiakt hab oder?



    Ansonsten kannst du mir die Methode mit dem Cookie nochmal was ausführlicher erkären?
    Also soll ich jetzt den Cookie durch die Session ersetzen oder?
  • d0nut schrieb:

    Ja, SSL wird von allen gängen Browsern unterstützt.

    Korrekt, dein Popup deutet darauf hin, dass du das SSL Zertifikat selbst unterschrieben hast.

    Die Methode ist simpel: [phpdoc]setcookie[/phpdoc]

    Quellcode

    1. setcookie("Variable", "Inhalt", time()+3600, "/", ".example.com", 1);


    Probiers einfach mal aus.


    Ach schade, wie teuer wäre denn eine zertifiziertes SSL Zerfikat? Gibt es das c.a Preise?

    Ah ich werd's mal ausprobieren. Aber eine Frage stellt sich mir da, im punkto sicherheit...

    Meine Sessions hatte ich beim login so definiert:

    $_SESESSION['id'] die dann z.b. 5 war je nachdem welcher user halt...
    und einmal S_SESSION['session_id'] die den wert von session_id(), zugewiesen bekommen hat.

    Und dann bei einem Seitenaufruf wird halt abgefragt, ob überhaupt $_SESESSION['id'] existiert und ob S_SESSION['session_id'] gleich session_id() ist.

    Wenn ich jetzt mit cookies arbeite, was soll ich da für cookies erstellen, damit es nicht sicherheitsrelevant wird.
    Wenn ich nämlich ja nur die Userid in ein Cookie schreibe, kann jeder sich ein cookie faken, und kann sich dann mit jeder id anmelden.

    Oder verstehe ich gerade den Sinn des Cookies total falsch?


    Aber schonmal danke für deine hilfe :)
  • So ich melde mich zurück, und hab mich mal über Salted hashes und so informiert.

    Also ich schreibe ganz normal mein cookie mit der userid drin, und erzeuge dann noch einen salted hash wert den ich in ein cookie schreiben lasse.

    Und bei jedem Seitenaufruf lasse ich mir den hash wert erneut generieren und checke dann, ob der gerade generierte hashwert gleich ist wie im cookie?
    Richtig oder total falsch?


    Gibt es noch andere möglichkeiten?
    Hab durch zufall gesehen, dass die seite schülervz auch automatisch beim login auf secure.schuelervz.net leitet...

    nach dem einloggen hab ich dann ein Cookie der für alle subdomains und die hauptdomain gültig ist.
    Der Cookie heißt PHPSESSID und der wert ist dann dementsprechend meine Sessionid.

    Aber was bringt es ihnen? Also die Session wurde ja wohl unter secure.schuelervz.net erzeugt.
    Das heißt die Sessions sind für schuelervz.net nicht gültig. Aber sie arbeiten dennoch mit Sessions. Wie zum teufel haben die das gelöst? Das gleiche bei studivz.

    Hast du ne Ahnung?

    Oder meinst du, die speichern/updaten beim login die erzeugte session_id in der datenbank wo das komplette profil des user liegt.
    und die sql abfragen gestalten sie dann z.b. Where session_id=cookie ?