Sessions richtig einsetzten

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

  • Sessions richtig einsetzten

    Ich weis das dieses Thema hier schon mehrfach behandelt wurde.

    Aber eine genaue Antwort auf meine Frage konnte ich weder hier noch in google finden.

    Ich arbeite in meinen Scripten auch mit Sessions. Und zwar fast ausschliesslich mit dem $_Session Array.

    Folgender aufbau habe ich in meinem "Programm":

    Auf einer Login Seite gibt man sein Passwort und den Usernamen ein.
    Beim abschicken der Formulars wird versucht sich mit dem Passwort und dem Usernamen auf einer Datenbank anzumelden. Alle folgenden Seiten basieren nämlich auf Informationen dieser DB.

    Nur bei korrektem Login in der Db werden die folgenden Formulare und Seiten Angezeigt. Bei falschem Login gelangt man wieder zurück zur loginseite.

    1) Ist das eine relativ sichere Methode oder löst man das normaler Weise ganz anders?

    2) Frage auch keine Sessionid oder so ab. Es funzt so soweit alles. Weis halt nur gar nicht, ob diese umsetzung sinnvoll ist?

    Danke für Tipps und Anregungen

  • #2
    Der Ansatz ist der wohl meistgenutzte und das wäre er wohl nicht, wenn er nicht sicher wäre.
    Aber der Ansatz allein ist keine Garantie für eine sichere Seite, man kann schließlich jeden Ansatz wie ein Scheunentor umsetzen.

    Nach dem Login legst du irgendetwas in der Session ab, um den Login-Status des Users auf den folgenden Seiten zu kontrollieren oder legst du die aktuelle Session-ID in der DB ab und fragst diese auf jeder Seite ab? Also bissl mehr Details für genauere Aussagen ...

    Kommentar


    • #3
      Genau an der Stelle bin ich mir unsicher wie ich weiter vorgehen soll/ das ist der Punkt den ich verbessern möchte.

      Nach einem erfolgreichen login frage ich auf den darauf folgenden Seiten
      immer wieder das passwort und den Usernamen aus dem $_SESSION
      Array ab und loge mich dann neu auf der Datenbank ein um Daten aus der Db auszulesen.

      Dies möchte ich jedoch umstellen auf einen persistenten login.
      Somit muss ich dann ja nicht mehr auf jeder Seite das Passwort und den User aus dem Array $_Session für einen login auslesen.

      Die darauffolgenden Seiten kann man nicht aufrufen, ohne die Login-Seite
      besucht zu haben und sich erfolgreich einzulogen.

      Reicht dieser Schutz und der, das der login erfolgreich sein muss aus um die Session einigermassen dicht zu machen?

      Die Sessionid benutze ich gar nicht, weis nämlich nicht wofür das gut sein soll.

      Danke für Anregungen

      Kommentar


      • #4
        Also Du musst in Deiner Session schon irgendeine Validierung mitführen, die Du in allen Deinen Seiten abprüfst, sonst könnte der User ja auf alle Seiten ausser auf die Login Seite zugreifen, auch ohne, dass er eingelogged ist.
        Also wir führen in der Session meist die ID des Users mit, der sich eingelogged hat, so haben wir in allen Seiten zugriff auf die Usereigenschaften, und somit seine Rechte.

        Kommentar


        • #5
          Ich habe auf allen meinen nahfolgenden Seiten diesen Teil in ähnlicher Weise stehen:

          PHP-Code:
          if (isset($_POST["send"]) || $_SESSION["x_to_menu"]==1)
             {
              
          // wird gelöscht, da sonst auch andere Seiten auf menu.php zugreifen können.
              // Diese Var wird auf den Verlinkenden Seiten immer wieder gesetzt.
              
          unset($_SESSION["x_to_menu"]);
             }
             else {
                 
          header'Location: ./login.php' );
                 exit();
              } 
          Somit kann keiner "quer" in die Session einsteigen, wenn er nicht über die Seite Login (dort existiert der Button send)kommt.

          $_SESSION["x_to_menu" ] wird auf allen Seiten gesetzt, welche auf diese Seite verlinken.

          Also muss man doch zwingend über den Login kommen. Oder liege ich da falsch?


          Zur Session ID:

          Kann mir mal jemand kurz sagen wie ich diese am besten erzeuge und sie dann auf den nächsten Seiten abfrage. Sie wird doch auf der ersten Loginseite mit irgendeinem Wert gesetzt. Wie kann ich denn auf den darauffolgenden Seiten prüfen ob es sie gibt? ODer bessr gefragt wass soll das?

          Gibt es dazu ein Script/Anleitung oder kann mir jemand mal den Vorgang mit der Id kurz beschreiben?

          Danke

          Kommentar

          Lädt...
          X