LoginSystem via Cookies (werden irgendwie nicht geprüft)

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

  • LoginSystem via Cookies (werden irgendwie nicht geprüft)

    hallo
    ich hab mich entschlossen ein eigenes loginsystem in php zu basteln. das ganze funktioniert über cookies zur identifizierung. bei sektionen etc soll das script überpfüfen ob noch alles stimmt. d.h er ließt das cookie aus und vergleicht es mit den daten in der datenbank falls dann das cookie geändert worden ist soll er sich ausloggen. es funktioniert sogar schon halbwegs. das einzige problem ist, wenn die seite offen ist und ich dann das cookie verändere (informationen herrauslösche) dann bleibt man trotzdem eingeloggt genauso wenn ich ne andere seite mit dem selben browser aufrufe und dann wieder die seite wo der code fürs cookie überprüfen drin ist bleibt man eingelogged, sogar wenn ich das cookie lösche und dann refresh mach bleibt man ebenfalls eingelogged. erst wenn ich nen neuen browser aufrufe dann erkennt er es und zeigt wieder den login bereich.
    außerdem funktioniert die weiterleitung nicht bei nem fehlerhaften login (soll bei nem fehler cookie löschen und dann wieder auf die index seite weiterleiten)

    hier ist der code der zum cookie überprüfen dienen soll, bitte seit nicht zu hart mit mir, das hab ich nirgendswo kopiert und ich mach erst seit ca einer woche sachen mit php

    PHP-Code:
    <?
    include "config/config.php";

    if(isset($_COOKIE['login']))
    {
        mysql_connect($sqlDB, $sqlUser, $sqlPass);
        mysql_select_db($sqlTable);
        $login_infos = explode("|", $_COOKIE['login']);
        
        $sql = "SELECT User_ID, User_Name , User_Pass FROM t_user WHERE 1 AND User_Name = '".$login_infos[1]."'";
        $resultid = mysql_query($sql) OR die(mysql_error());
                
        $result = mysql_fetch_assoc($resultid);
        
        if(strtolower($result['User_Name']) == strtolower($login_infos[1]) AND ($result['User_Pass']) == ($login_infos[2]))
        {
            echo "Herzlich Willkommen <b>".$result['User_Name']."</b><br>";
            echo "<a href=setcookie.php?action=logout>Logout</a><br>";
        }
        else
        {    
            setcookie("login", "", time());
            echo "<html>";
            echo "<head><title>...::::LoginTest::::...</title></head>";
            echo "<body><br>";
            echo "Fehler beim Autologin. Sie werden automatisch weitergeleitet";
            echo "<meta http-equiv=\"refresh\" content=\"5; URL=http://localhost/login/index.php\">";    
        }
    }
    else
    {
        echo "<form action=\"setcookie.php\" method=\"post\">";
        echo "<input type=\"text\" name=\"Username\"><br>";
        echo "<input type=\"password\" name=\"Userpass\"><br>";
        echo "Auto Login <input type=\"checkbox\" name=\"AutoLogin\"><br>";
        echo "<input type=\"submit\" name=\"Submit\" value=\"Login\">";
        echo "</form>";
    }
    ?>
    </body>
    </html>
    es gibt zwar die möglichkeit identifizierungen über sessions aber cookies sind mir lieber
    natürlich nehm ich gerne vorschläge etc entgegen wie ich die identifizierung über cookies noch "sicherer" machen kann

  • #2
    es gibt zwar die möglichkeit identifizierungen über sessions aber cookies sind mir lieber
    natürlich nehm ich gerne vorschläge etc entgegen wie ich die identifizierung über cookies noch "sicherer" machen kann
    hmm, sessions sind in meinen augen mit sicherheit besser geeignet. warum sind cookies dir lieber? weil sie nicht funktionieren, wenn der user sie deaktiviert hat?

    Kommentar


    • #3
      Noch ein kurzer Satz zur Sicherheit von Sessions. Sessions sind keineswegs sicher. Zumindest nicht so, wie sie in PHP implementiert sind. Da man hier einfach durch Weitergabe der Session-ID die Session übernehmen. D.h. ein anderer Benutzer könnte, in dem er z.B. die URL samt Session-ID im IRC gepastet bekommt, diese Session übernehmen und auch die Daten des eigentlichen Besitzers einsehen. Um solche Effekte zu vermeiden sind zum einen Cookies nicht schlecht, da hier keine Session-ID in der URL mitgegeben werden muß. Allerdings sind Cookies auch kein Standard, und man würde jeden ausschliessen, der Cookies verweigert.

      Eine Möglichkeit Sessions sicherer zu machen, ist es die IP des Nutzers zu speichern. Dies ist allerdings auch kein Allheilmittel, da man hier teilweise auch nur die Proxy-IP bekommt usw.
      deswegen sind mir cookies lieber
      und da das ding zwar extern auf nem webserver laufen wird wird meistens ausm netzwerk zugegriffen und dort haben dann ca 30 leute die gleiche ip und da ich ja die standarts firmen intern kenne weiß ich das die cookies akzeptiert werden und nicht alle administrationsrechte auf der kiste haben

      aber mir is gerade noch was eingefallen man könnte ja das cookie stehlen bzw vom gleichen rechner drauf zugreifen also is die sicherheitsabfrage ob das cookie verändert wurde eigentlich nutzlos
      oder lieg ich da falsch? hab soviel über das problem die letzen tage nachgedacht das mir der aspekt irgendwie entfallen ist.

      mir fällt gerade noch einiges ein ich glaub da werd ich mir noch ein paar gedanken drüber machen müssen.
      Zuletzt geändert von st@tic; 25.03.2004, 17:13.

      Kommentar

      Lädt...
      X