login mit cookies

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • login mit cookies

    Hallo,

    Ich habe ein problem oder eine "denkblockade" und zwar habe ich ein problem mit den cookies...

    Wenn sich ein benutzer anmeldet dann werden 2 cookies gesetzt:

    PHP-Code:
    $qry mysql_query("SELECT cookie_time_auto, cookie_time_session FROM shop_settings");
    $res_site mysql_fetch_assoc($qry);
    [...]
    $plus $res_site["cookie_time_session"];
    $time time()+$plus;
    $hash md5(gen_pw());
    setcookie("user"$res_user["id"], $time);
    setcookie("session"$hash$time); 
    ...und es wird der generierte hashwert beim user eingetragen. Soweit alles okay... nur wenn jetzt die Cookies ablaufen,dann werden sie automatisch geloescht und ich kann nichts mehr updaten d.h der user hat noch den hashwert drin (es ist zwar "noch" nicht schlimm aber waer doch besser wenn der hashwert entfernt wird)

    check_cookie function
    PHP-Code:
    function check_cookie() {
      if (isset(
    $_COOKIE["user"])){
        
    $user $_COOKIE["user"];
        
    $hash $_COOKIE["session"];
        
    db_connect();
        
    $qry mysql_query("SELECT * FROM shop_user WHERE id = '".$user."' AND session = '".$hash."'");
        if (
    mysql_num_rows($qry) == 1) {
          
    $res mysql_fetch_assoc($qry);
          return 
    true;
        } else {
          return 
    false;
        }
      }

    Vielleicht gibt es eine bessere loesung fuer cookies aber das ist jetzt meine waer auch fuer eine andere variante offen!

    Ich moechte das der user sich anmeldet und nicht bei jeden neuen seitenaufruf sich erneut einloggen muss, wenn cookies dann ablaufen soll er sich neu einloggen. Funktioniert auch nur weiss ich nicht wie ich jetzt die datenbank updaten soll :S

    mfg tetRa`

  • #2
    wieso bleibt der hashwert gespeichert, obwohl das cookie gelöscht wird? Ich denke der Hash wird IM Cookie gespeichert?

    Aso, die DB willst du updaten. Na, das geht nicht (automatisch) schließlich läuft das cookie ab, wenn der user offline ist.

    Aber du kannst nen Timestamp o.ä. speichern mit dem Ablaufzeitpunkt des Cookies. Dann brauchst du nur regelmäßig zu prüfen, ob der zeitpunkt verstrichen ist und kannst den hash so löschen.

    Halte ich aber insgesammt für überflüssig. Aber darum geht's ja nicht.

    Kommentar


    • #3
      Mhh, koennte das so machen das die Cookies fuer immer gueltig sind aber der gueltigkeitswert in der datenbank gespeichert wird.

      Wenn dann das aktuelle datum groesser als der gespeicherte ist, dann soll er den hashwert aus der datenbank loeschen und die cookies...

      Original geschrieben von TobiaZ
      Halte ich aber insgesammt für überflüssig. Aber darum geht's ja nicht. [/B]
      Magst mir den satz etwas erlaeutern?

      Wie sollte ich das denn loesen, dass der user angemeldet bleibt? koennte auch passwort im cookie speichern aber das "reduziert" widerum die "sicherheit" :S
      Zuletzt geändert von tetra; 17.09.2007, 12:57.

      Kommentar


      • #4
        Mhh, koennte das so machen das die Cookies fuer immer gueltig sind aber der gueltigkeitswert in der datenbank gespeichert wird.
        Wenn es um die Gültigkeit eines Accunts geht, solltest du das mit sicherheit tun. Wenn es aber um die Gültigkeit des Cookies geht, dann sollte diese auch "im" Cookie stehen.

        Magst mir den satz etwas erlaeutern?
        Ich sehe einfach keinen grund, warum du den Hash löschen willst. Hast du Speicherplatzmangel? Sicher nicht.

        Wie sollte ich das denn loesen, dass der user angemeldet bleibt? koennte auch passwort im cookie speichern aber das "reduziert" widerum die "sicherheit" :S
        Zum Thema Autologin gibt es diverse Themen. Dein Ansatz ist ja auch gut und richtig. Da liegt ja auch gar nicht dein Problem, oder?

        BTW: Passwörter sollten NIEMALS (weder im Cookie noch in der Datenbank) im Klartext gespeichert werden. Nie!

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          Zum Thema Autologin gibt es diverse Themen. Dein Ansatz ist ja auch gut und richtig. Da liegt ja auch gar nicht dein Problem, oder?
          Ne Login funzt wunderbar auch in kombination mit dem cookie nur sehe ich den hashwert in der datenbank irgendwie als sicherheits"loch"

          Wenn der user sich selbst auslogged dann ist alles kla aber wenn cookie ablaeuft dann fehlt theoretisch nur die userid um sich einzuloggen...

          Kommentar


          • #6
            Original geschrieben von tetra
            ...aber wenn cookie ablaeuft dann fehlt theoretisch nur die userid um sich einzuloggen...
            was aber eigentlich ducrh deine abfrage:
            Code:
            WHERE id = '".$user."' [B]AND[/B]  session = '".$hash."'"
            verhindert werden sollte, es muss ja beides vorhanden sein.
            du setzt in beiden cookies die selbe lebensdauer, ist eines abgelaufen sollte auch das andere abgelaufen sein und deine bedingung, zum auslesen der datenbank, nicht mehr erfüllt sein.

            wenn du dem code so nicht zu 100% traust, prüfe doch ab, ob es ein usercookie gibt, wenn ja, muss ja auch ein hash cookie da sein. ist das nicht der fall, eintrag aus der tabelle löschen und neues login.

            Kommentar

            Lädt...
            X