Login Sicherheit

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

  • Login Sicherheit

    Hallo php-resource community!

    Folgendes:
    Habe ein kleines Login-System mit Sessions.
    Da ich kein PHP-Profi bin wäre es toll wenn ihr mal einen Blick drauf werfen würdet ob das auch sicher ist

    Am Anfang jeder Datei die nur der eingeloggte User sehen soll steht

    PHP-Code:
    <?PHP include("access.php"); ?>
    Access.php:

    PHP-Code:
    <?PHP

    if(!isset($_SESSION['admin']))
        {
        
    header("location: index.php");
        exit;
        }

    ?>
    Auf der index.php befindet sich das Login-Formular. Wenn man also nicht eingeloggt ist wird man dahin geleitet.

    Das Login-Formular sieht folgendermaßen aus:

    Code:
    <form action="login.php" method="post">
    <input type="text" size="12" maxlength="50" name="username" />
    <input type="password" size="12" maxlength="50" name="password" />
    <input type="submit" value="Login">
    </form>
    in der login.php sieht's so aus:

    PHP-Code:
    <?PHP

    session_start
    ();

    $user $_POST["username"];
    $pw $_POST["password"];

    include(
    "_admin.php");

    if (
    $user == $username && md5($pw) == $password)
        {
        
    $_SESSION['admin'] = "$user";
        
    header("location: admincenter.php");
        }
    else
        {
        
    header("location: index.php");
        }

    ?>
    und wie man unschwer erkennen kann befinden sich die Info's (username und password) in der _admin.php

    Gibt's da irgendwelche Lücken?^^

    MfG
    Schiller
    Zuletzt geändert von SCHiLLER; 18.11.2008, 19:50.

  • #2
    wie werden denn $username und $password definiert?

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      meinst du das?:

      PHP-Code:
      $username "admin";
      $password "098f6bcd4621d373cade4e832627b4f6"

      Kommentar


      • #4
        Username admin und Passwort test sind per se unsicher.
        Im Location-Header sollte man eine absolute URL angeben.
        Was machst du da eigentlich mit $log?

        Kommentar


        • #5
          Original geschrieben von onemorenerd
          Username admin und Passwort test sind per se unsicher.


          $log nich beachten.. kommt raus

          Kommentar


          • #6
            Naja, wenn du ein genügend langes Passwort nimmst mit genügend verschiedenen Zeichen schadet es nicht gross, wenn du admin als Benuzernamen nimmst, aber wenn du dann auch noch ein Passwort wie hier mit nur 4 Buchstaben verwendest, dann wird es einfach zu cracken sein.

            Kommentar


            • #7
              Original geschrieben von jmc
              Naja, wenn du ein genügend langes Passwort nimmst mit genügend verschiedenen Zeichen schadet es nicht gross, wenn du admin als Benuzernamen nimmst, aber wenn du dann auch noch ein Passwort wie hier mit nur 4 Buchstaben verwendest, dann wird es einfach zu cracken sein.
              Ja natürlich nehm ich ein langes Passwort und einen individuellen Benutzernamen
              Und das Script an sich is in Ordnung?

              Kommentar


              • #8
                Jop, sonst ist schon ziemlich sicher.

                Kommentar


                • #9
                  Original geschrieben von jmc
                  Jop, sonst ist schon ziemlich sicher.
                  das ist gut, danke

                  Kommentar


                  • #10
                    Re: Login Sicherheit

                    Original geschrieben von SCHiLLER

                    PHP-Code:
                    <?PHP

                    if(!isset($_SESSION['admin']))
                        {
                        
                    header("location: index.php");
                        exit;
                        }

                    ?>
                    ----------------------------------------------------------------------
                    <?PHP

                    session_start
                    ();

                    $user $_POST["username"];
                    $pw $_POST["password"];

                    include(
                    "_admin.php");

                    if (
                    $user == $username && md5($pw) == $password)
                        {
                        
                    $_SESSION['admin'] = "$user";
                        
                    header("location: admincenter.php");
                        }
                    else
                        {
                        
                    header("location: index.php");
                        }

                    ?>
                    Hallo Schiller,

                    exit; kannst du weglassen, wird eh nicht ausgeführt

                    PHP-Code:
                    $user $_POST["username"];
                    $pw $_POST["password"];
                    // ^^ ist ebenfalls überflüssig
                    //kannst das auch so lösen
                    //eventuell vorher auch überprüfen ob überhaupt der login button angeklickt wurde
                    if($_POST['username'] == $username && md5($_POST['passwort']) == $passwort) {
                    //mach dies, tue jenes
                    }

                    $_SESSION['admin'] = "$user";
                    //"$user"
                    // ^^die Anführungsstriche gehören da nicht hin 
                    vg
                    gourmet

                    Kommentar


                    • #11
                      Re: Re: Login Sicherheit

                      exit; kannst du weglassen, wird eh nicht ausgeführt
                      Ist das so? Ich wäre mir da nicht so sicher!

                      Kommentar


                      • #12
                        Ich finde exit nach einen header('Location...') sehr gesund. So kann man sicher sein, dass das Script an der Stelle abbricht. Alles andere wäre Unsinn.

                        Kommentar


                        • #13
                          ja habt recht, ich habe mich nochmal dazu belesen, ein exit; ist nicht verkehrt, ist mir noch nie so aufgefallen das da noch etwas passiert nach dem header()

                          vg
                          gourmet

                          Kommentar


                          • #14
                            Original geschrieben von gourmet
                            ja habt recht, ich habe mich nochmal dazu belesen, ein exit; ist nicht verkehrt, ist mir noch nie so aufgefallen das da noch etwas passiert nach dem header()

                            vg
                            gourmet
                            Macht ja nichts gourmet! Wir haben hier alle schon mal was neues gelesen!
                            WHILE (!$asleep) { $sheep++; }

                            Kommentar


                            • #15
                              Vielleicht solltest Du solche wichtigen Dateien doch lieber mit require() einbinden.
                              Wenn der Include fehlschlägt, ist Dein ganzer Schutz ausgehoben!

                              Kommentar

                              Lädt...
                              X