Fragen zum Login-Script

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

  • Fragen zum Login-Script

    Hallo!
    Ich habe ein paar Seiten durch Benutzername & Kennwort geschützt.
    Auf der "Kontrollseite" checke ich, ob Benutzername & Kennwort OK sind und starte dann eine Session und setze die Variablen von Benutzername und Kennwort in die Session.

    PHP-Code:
    session_start(); 
    $_SESSION["Kennwort"] = "$Kennwort";
    $_SESSION["Benutzername"] = "$Benutzername"
    Auf allen "geschützten" Seiten setze ich am Anfang den folgenden Wert um die Seiten zu schützen:
    PHP-Code:
    session_start();
    if(!
    session_is_registered(Benutzername)){
    header("location:index.php");
    }
    #jetzt kommt die seite.... 
    Wenn die Variable Benutzername also nicht gesetzt ist, wird der Besucher zu index.php geschickt.

    Soweit läuft das auch, aber zwei Fragen bleiben:

    1. Ich erhalte auf den geschützten Seiten die Meldung
    PHP-Code:
    Notice: Use of undefined constant Benutzername assumed 'Benutzername' ...
    #Zeilenangabe ist gleich dem oben genannten Script 
    #if(!session_is_registered(Benutzername)){ 
    Was ist falsch?

    2. Ist das Ganze einigermaßen sicher? Oder seht ihr Probleme? Von einem massiven Angriff will ich mal nicht sprechen - die Seiten sind nur einigen bekannt - nicht öffentlich.

    Besten Dank!!

  • #2
    also erstmal zur Meldung
    session_is_registered(Benutzername) da Du keine quotes für Benutzername verwendest wird davon ausgegangen, dass es sich um eine konstante handelt...

    btw. solltest Du $_SESSION nicht mit session_is_registered() arbeiten
    rtfm :-P
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      danke.
      Original geschrieben von MelloPie
      btw. solltest Du $_SESSION nicht mit session_is_registered() arbeiten
      rtfm :-P [/B]
      sondern mit
      if(isset($_SESSION['VARNAME']))
      oder ??

      Kommentar


      • #4
        Hallo


        Also erstmal würde ich beim setzen der Sessionvariablen $Benutzername und $Kennwort nicht in Anführungsstriche setzen... Das geht zwar, schmeißt keinen Fehler ist aber unschön.

        Und dann musst du natürlich Anführungsstriche in der funktion benutzen, damit php weiß, dass es ein String ist, sonst wird erst geschaut ob es die Konstatne Benutzername gibt. also:

        PHP-Code:
        session_is_registered('Benutzername'
        signed oder unsigned... das ist hier die Frage

        Kommentar


        • #5
          und niemals passwörter in einer session speichern!

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

          Kommentar


          • #6
            OffTopic:
            und niemals passwörter in einer session speichern!
            Warum?

            Kommentar


            • #7
              Original geschrieben von PHP-Desaster
              OffTopic:
              Warum?
              OffTopic:
              session-hijacking


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

              Kommentar


              • #8
                Original geschrieben von PHP-Desaster
                OffTopic:
                Warum?
                Wozu solch kritische Daten in der Session abstellen, wenn nicht unbedingt nötig? Und mir fällt spontan nicht ein, warum ich das Passworts eines Benutzers in einer Session haben wollte. Unnötiges Sicherheitsrisiko.

                Grüße
                Nieder mit der Camel Case-Konvention

                Kommentar


                • #9
                  Ich stimme Griecherus zu. Der User gibt sein Passwort nur beim Login ein, später hat man also gar nichts mit dem man das PW in der Session vergleichen könnte. Einzige denkbare Ausnahme ist die Passwort-Ändern-Funktion mit Eingabe des alten Passworts. Da kann der Vergleich aber direkt in der SQL-Query eingebaut werden.

                  @Kropff: Bei Session Hijacking ist es egal, ob das PW in der Session steht. Ich sehe den Zusammenhang nicht.

                  Kommentar


                  • #10
                    Ich stimme Griecherus zu. Der User gibt sein Passwort nur beim Login ein, später hat man also gar nichts mit dem man das PW in der Session vergleichen könnte. Einzige denkbare Ausnahme ist die Passwort-Ändern-Funktion mit Eingabe des alten Passworts. Da kann der Vergleich aber direkt in der SQL-Query eingebaut werden.
                    Da stimme ich definitiv auch zu, ich habe mir aber gedacht, das Kropff nicht hierauf abzielt! Solche Daten gehören eh nicht in die Session!

                    @Kropff: Bei Session Hijacking ist es egal, ob das PW in der Session steht. Ich sehe den Zusammenhang nicht.
                    Richtig, meist ist der User eh eingeloggt, wenn die Session übernommen wird. Und wenn du den Inhalt der Session nirgendwo ausgibst (Passwörter eh nie im Klartext ausgeben), ist es ziemlich egal, ob das Passwort drin steht oder nicht.

                    Kommentar


                    • #11
                      Und wenn du den Inhalt der Session nirgendwo ausgibst (Passwörter eh nie im Klartext ausgeben), ist es ziemlich egal, ob das Passwort drin steht oder nicht.
                      Wenn man das Passwort nicht verwendet, braucht man es auch nicht reinschreiben. (Ja, ich habe verwendet und nicht ausgibt geschrieben. )

                      Kommentar


                      • #12
                        Wenn man das Passwort nicht verwendet, braucht man es auch nicht reinschreiben.
                        Solche Daten gehören eh nicht in die Session!
                        Wie ich sagte

                        Kommentar


                        • #13
                          Passt gerade so zum Thema:

                          Wie würdet ihr ein Auto-Login realisieren?
                          Statt dem Passwort ein Zufallshash für den User erstellen und ihn daran erkennen - oder doch das verschlüsselte PW?

                          mfg

                          Kommentar


                          • #14
                            cookie mit einem hash aus benutzername und password .. somit kann KEINER was damit anfangen

                            bsp:
                            Benutzername: test_user_name
                            Password: test_password

                            md5 Werte:
                            Benutzername: 8dfafdd20b962f7900136661823f921b
                            Password: 1a4d7a1d27600bdb006f9d126a4c4a81

                            vllt mit beiden werten ein md5 hach erzeugen
                            (8dfafdd20b962f7900136661823f921b1a4d7a1d27600bdb006f9d126a4c4a81)

                            82c9c582f81ea97c2c31192b1e0a3087 << das wäre das ergebnis .. mit so einem cookie kann keiner was anfangen .. natürlich sollte sich keiner das cookie klauen ... aber das ist ja immer so ein problem mit auto-logins
                            Gruß
                            Uzu

                            private Homepage

                            Kommentar


                            • #15
                              Original geschrieben von UzumakiNaruto

                              82c9c582f81ea97c2c31192b1e0a3087 << das wäre das ergebnis .. mit so einem cookie kann keiner was anfangen .. natürlich sollte sich keiner das cookie klauen ... aber das ist ja immer so ein problem mit auto-logins
                              Genau das meine ich ja, aber was ist, wenn der User vlt ein Passwort benutzt, was in einer Rainbow Tab. drin ist?
                              Deshalb dacht ich vlt an einen zufallshash, sodass man im falle des klauens, zwar automatisch eingeloggt ist(wie auch bei username + pw), aber nicht die chance hat das pw zu ändern, weil er ja nichtmal den hash kennt..

                              mfg

                              Kommentar

                              Lädt...
                              X