Ankündigung

Einklappen
Keine Ankündigung bisher.

Sicherheit beim login

Einklappen

Neue Werbung 2019

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

  • Sicherheit beim login

    Ich bin dabei einen geschützten Memberbereich für meine Seite zu programmieren. Meine Frage ist nun ob es reicht nach dem absenden der logindaten diese einmalig mit der mysql datenbank abzugleichen und bei erfolg eine variable wie $_SESSION['login'] auf true oder 1 zu setzen, und diese dann auf jeder Seite zu prüfen, oder es aus sicherheitsgründen zwingend notwendig ist auf jeder seite eine function zu haben, die die daten gegen die datenbank überprüft.

    Mfg

  • #2
    Nein es reicht diese nachdem sie einmal überprüft wurden und bei positiver Authetifizierung in die Session zu schreiben und im fortlaufenden Skript nur noch auf die Session-variable zu prüfen.
    Außerdem Schreibt man niemals die Logindaten in die Session sondern irgendwelche Flags wie "isAuthorized" oder sowas in der Art. Benutzername & PW gehören nicht in die Session!
    "My software never has bugs, it just develops random features."
    "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

    Kommentar


    • #3
      Danke für die rasche Antwort.

      Kommentar


      • #4
        Ansonsten kann es auch passieren, dass Du z. B. einem Benutzer etwas verbietest oder ihn löschst, aber für den Rest der Session kann er noch machen, was er will.

        Kommentar


        • #5
          Zitat von Paul.Schramenko Beitrag anzeigen
          Außerdem Schreibt man niemals die Logindaten in die Session sondern irgendwelche Flags wie "isAuthorized" oder sowas in der Art. Benutzername & PW gehören nicht in die Session!
          Und wie möchtest du dann einen User identifizieren? Mit isAuthorized wohl nicht. Daher brauchst du zumindest schonmal die ID des Users in der Session. Wieso du den Username nicht in der Session speicherst ist mir auch ein Rätsel. Das man natürlich Passwörter nicht in die Session speichert ist klar. Beim Rest sehe ich da kein Problem.

          Kommentar


          • #6
            Die ID muss gespeichert werden. Wozu aber (außer vielleicht aus Caching-Gründen) sollte der Username gespeichert werden?

            Kommentar


            • #7
              Weil du eigentlich auf jeder Seite den Usernamen anzeigst, wieso sollte ich dafür immer eine eigene DB Abfrage machen?

              Kommentar


              • #8
                Zitat von Flor1an Beitrag anzeigen
                Und wie möchtest du dann einen User identifizieren? Mit isAuthorized wohl nicht. Daher brauchst du zumindest schonmal die ID des Users in der Session. Wieso du den Username nicht in der Session speicherst ist mir auch ein Rätsel. Das man natürlich Passwörter nicht in die Session speichert ist klar. Beim Rest sehe ich da kein Problem.
                Ich meinte ja eigentlich auch die Kombination von Benutzername & Passwort, dass man eine Benutzerkennung mitgeben muss, sei es in Form eines Namen oder einer ID ist ja eigentlich auch klar.
                Das Passwort gehört unter keinen Umständen in die Session.
                "My software never has bugs, it just develops random features."
                "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                Kommentar


                • #9
                  Weil du eigentlich auf jeder Seite den Usernamen anzeigst
                  Wieso denn das? Du kennst doch meine Seiten nicht.. Dazu kommt immer noch das:
                  Ansonsten kann es auch passieren, dass Du z. B. einem Benutzer etwas verbietest oder ihn löschst, aber für den Rest der Session kann er noch machen, was er will.

                  Kommentar


                  • #10
                    Zitat von xm22
                    Wieso denn das? Du kennst doch meine Seiten nicht..
                    Naja, aber ein Memberbereich, bei dem der User nicht sehen kann, als wer er eingeloggt glänzt schon mit etwas Sinnfreiheit...
                    Daher finde ich es auch besser, den Usernamen mit in die Session zu nehmen, anstatt jedes Mal die DB zu bemühen.
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      am besten ist:

                      nach der eingabe der richtigen daten, session_id() neu generieren, und die session_id() in die datenbank zu schreiben zu dem user.

                      vor aufruf jeder seite, die benutzer ID aus der datenbank auslesen WHERE session_aus_db = session_id();
                      dabei die benutzer ID in eine session speichern.

                      und schon hat man einen user eindeutig identifiziert und kann seine daten anhand der userid zuordnen
                      apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

                      Kommentar


                      • #12
                        Naja dabei haste bei jedem Seitenaufruf eine SQL um den benutzer zu identifiezieren. Da das beim Authentifizieren bereits gemacht wird, ist es wohl einfacher, und IMHO auch sinnvoller, das ganze aus der Session zu holen.
                        "My software never has bugs, it just develops random features."
                        "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                        Kommentar


                        • #13
                          Zitat von Paul.Schramenko Beitrag anzeigen
                          Naja dabei haste bei jedem Seitenaufruf eine SQL um den benutzer zu identifiezieren. Da das beim Authentifizieren bereits gemacht wird, ist es wohl einfacher, und IMHO auch sinnvoller, das ganze aus der Session zu holen.
                          Aber nur dann, wenn die Session auch eine SSL-Session ist. Andernfalls ist das gleichbedeutend mit Nutzerdaten zum Download ins Netz stellen.
                          Viele Grüße,
                          Dr.E.

                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          1. Think about software design [B]before[/B] you start to write code!
                          2. Discuss and review it together with [B]experts[/B]!
                          3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                          4. Write [I][B]clean and reusable[/B][/I] software only!
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                          Kommentar


                          • #14
                            Inwiefern meinst du das? Die Daten in der Session liegen ja auf dem Server und werden nicht übertragen. Oder meinst du Cookie Diebstahl? Dann hast du aber wahrscheinlich das selbe Problem wenn die Daten aus der DB geladen werden und dann angezeigt werden.

                            Kommentar


                            • #15
                              Sehe ich genau so.
                              Wenn de Benutzer einmal authetifiziert wurde, kann man seine Daten, welche öfter auf der Seite gebraucht werden (könnten), wie der Benutzername, letztes Login oder weiß der Geier was, auch in der Session speichern.
                              "My software never has bugs, it just develops random features."
                              "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                              Kommentar

                              Lädt...
                              X