kölir: Sessioncookies

Hallo,

ich dachte immer falls kein session_cookie verwendet werden kann, weicht php automatisch auf GET-Parameter um. Nun habe ich aber irgendwo gelesen, dass genau dies eben nicht funktioniert. Weicht php automatisch auf GET-Parameter um?

Gruß

P.S.: Wie kann ich am einfachsten prüfen, ob Cookies erlaubt sind?

  1. Für deine Zwecke mit der Konstanten SID.

  2. Hello,

    ich dachte immer falls kein session_cookie verwendet werden kann, weicht php automatisch auf GET-Parameter um. Nun habe ich aber irgendwo gelesen, dass genau dies eben nicht funktioniert. Weicht php automatisch auf GET-Parameter um?

    Igendwo ist schlecht.
    Besser ist http://www.php.net/manual/en/ref.session.php

    Sessions über die URi zu vermitteln ist aber wesentlicher schlechter, als im HTTP-Header für Cookies oder sonstige Parameter.

    URIs werden schon lange logged, demnächst wahrscheinlich sogar per Gesetz
    HTTP-Header nur von Kriminellen (zumindest bis "Schäuble 1.0" greift)

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Hello,

      Hello,

      ich dachte immer falls kein session_cookie verwendet werden kann, weicht php automatisch auf GET-Parameter um. Nun habe ich aber irgendwo gelesen, dass genau dies eben nicht funktioniert. Weicht php automatisch auf GET-Parameter um?

      Igendwo ist schlecht.
      Besser ist http://www.php.net/manual/en/ref.session.php

      Sessions über die URi zu vermitteln ist aber wesentlicher schlechter, als im HTTP-Header für Cookies oder sonstige Parameter.

      URIs werden schon lange logged, demnächst wahrscheinlich sogar per Gesetz
      HTTP-Header nur von Kriminellen (zumindest bis "Schäuble 1.0" greift)

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau

  3. Hallo,

    also irgendwie raff ich nichts.

    Wie soll ich die sessionid jetztz wo mitsenden? cookie-header?

    Wie realisiert man ein LoginSystem ohne session, für user, die session abgestellt haben?
    Und wie speichert man usereinstellungen langfristig ohne cookie?

    Gruß

    1. Hello,

      Wie realisiert man ein LoginSystem ohne session, für user, die session abgestellt haben?
      Und wie speichert man usereinstellungen langfristig ohne cookie?

      Die Frage ist falsch, da kann man dann auch keine richtige Antwort drauf geben.
      Ich versuch mal, es geradezurücken:

      Die User haben an ihrem Client nicht "Session" abgestellt, sondern nehmen keine Cookies an, obwohl das heutzutage vollkommen ok ist, mit Ausnehme des Trackings natürlich. Aber dafür bieten die Browser an, nur von bestimmten Domains Cookies anzunehmen.

      Ohne Session kann man kein "Login" bauen. Irgendwie müssen die Daten auf dem Server dem Client zugeordnet werden können. Man kann allerdings die Daten immer zwischen Server und Client hin und herschicken. Dann kann der Client (meistens) daran beliebig manipulieren. Man muss also bei jedem Request alle Stufen der Prüfung wieder neu machen.

      Man kann eine Session mit geschenküblichen Browsern aber nicht nur auf Cookies aufbauen, sondern auch auf Paramtern in der URi (mMn untauglich und tunlichst zu unterlassen) oder auf den AUTH-Kriterien für das klassische Basic-Auth-Verfahren.

      Das haben die wenigsten Clients ausgeschaltet.
      Das funktioniert ganz erstklassig, ist nur ein wenig komplizierter in der Umsetzung mit PHP, weil immer noch ein paar praktische Funktionen fehlen in PHP und man sich die Session-Datei daher selber bauen muss. Die ist dann leider im Speicherformat nicht kompatibel mit der automatisch erzeugten Sessiondatei von PHP.

      Mit ein wenig Tricksen kann man den PHP-eigenen Sessionmechanismus allerdings auch an das Basic-Auth ankoppeln.

      Schau Dir mal an, was passiert, wenn Du beim session_start($session_id) eine ID übergibst.

      http://www.php.net/manual/en/function.session-start.php

      Dann musst Du dir diese Session-ID nur merken für den User-Account. Das machst Du am besten in einer DB. An die DB lässt Du den User nur heran, wenn er sich mittels

      <?php
        if(!isset($_SERVER["PHP_AUTH_USER"]) or !isset($_SERVER["PHP_AUTH_PW"]))
        {
          Header("WWW-Authenticate: Basic realm="My Realm"");
          Header("HTTP/1.0 401 Unauthorized");
          echo "Text, der gesendet wird, wenn der Benutzer abbricht.<br />".
               "Das sollte eine vollst&auml;ndige HTML Seite sein.\n<br>";
          exit;
        }
        else
        {
          echo "Hello ".$_SERVER["PHP_AUTH_USER"]."<P>";
          echo "Du hast <b>".$_SERVER["PHP_AUTH_PW"]."</b> als Passwort eingegeben.<P>";
        }
      ?>

      authentifiziert hat.

      Das funktioniert aber nur dann auf diese Weise, wenn PHP im Apachen als Modul läuft.

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau