Sicherheit mit PHP Session ID

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

  • Sicherheit mit PHP Session ID

    Hallo zusammen!

    Ich habe ein php-skript das sich zwei variablen in der php-session speichert und zwar user und passwort. nun wird ja die session temporär auf dem server in ein verzeichnis abgelegt. Währenddem jetzt der User mit dem skript arbeitet hat er ja eine Session-Id (mit dem inhalt: user & pw) die in dem tempverzeichnis des servers (standard im php.ini) gespeichert wird. Jetzt kann ich diese aufmachen mit dem editor und so den inhalt der session-id anschauen, also den inhalt der beiden variablen im klartext ansehen.
    Nun ja das gefällt mir eigentlich überhaupt nicht, da es doch ein riesen sicherheitsloch ist. Man könnte Schnell in versuchung kommen alle momentan vorhanden php-id's anschauen gehen und sich die pw's notieren.
    Hat jemand eine ahnung, was es da für möglichkeiten gibt das ganze sichere zu gestalten?

    Besten Dank &mfg

    larix

  • #2
    schreiben noch einmal die SESSID als VAR in die session.

    UN und PW auf jeden fall wieder RAUS nehmen!!! die solltest du nicht in der session speichern.
    verwende lieber eine VAR, die z.b. ALLESOK heisst. ist sie '1' (true), ist der user ordnungsgemäß eingeloggt, ist sie '0' (false) ist der user nicht korrekt oder gar nicht eingeloggt.

    $allesok = true
    oder
    $allesok = false

    du brauchst dann nur zu schauen, wie der status von $allesok ist. das wars.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      du kannst in der php.ini den pfad ändern, wo die sachen abgespeichert sind.
      und da nimmst du dann einfach nen verzeichnis, wo nur der apache leserechte drauf hat...
      eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

      Kommentar


      • #4
        ähem .. und passwörter verschlüsseln wär sinnvoll
        mfg,
        [color=#0080c0]Coragon[/color]

        Kommentar


        • #5
          @slarti
          ob er die dateien in /tmp (standard) liegen hat, oder im apache verzeichnis ist doch egal.
          wenn ich das richtig verstanden habe, hat er ja eg zugriff auf die maschine.
          wie sollte er denn sonst die daten bisher gelesen haben. in /tmpkommt man ja nicht via browser dran.....
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Aus diesem Grunde speichert man ersten nicht Benutzername und Kennwort sondern eine Benutzer ID ... (welch blöde Idee) und hat außerdem im Script die Möglichkeit den Save Path via string session_save_path ( [string path]) individuell zu ändern ... allerdings sollte der Webserver Schreibrechte auf das Verzeichnis haben !
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              php funktion für die verschlüsselung

              danke für die antworten.

              @Abraxax:
              was soll mir das bringen wenn ich eine VARIABLE in die session speichere, die mir sagt ob ALLESOKEY ist? ich brauch die Userdaten, da diese für die DB verbindung gebraucht werden.

              @rest:
              habe schon die server_path variable geänderte auf ein "sicheres" verzeichnis

              @all:
              gibt es keine php funktion die mir eine zeichenkette mit einem von mir gegebenen verschlüsselungskey verschlüsselt ? also im klartext:
              "abc" mit "verschlüsselungskey" -> "34k334kca34"

              besten dank!

              larix

              Kommentar


              • #8
                Re: php funktion für die verschlüsselung

                was soll mir das bringen wenn ich eine VARIABLE in die session speichere, die mir sagt ob ALLESOKEY ist? ich brauch die Userdaten, da diese für die DB verbindung gebraucht werden.
                aber du brauchst doch bestimmt nicht das passwort des jeweiligen users, um auf die DB zugreifen zu können, oder?

                dann übergibst du also nur den usernamen, um die zuordnung der datensätze in der db hinzukriegen, und die variable alles_ok, die dir sagt, dass der user korrekt eingeloogt ist und auf die daten zugreifen darf.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  das problem ist, das skript baut eine verbindung auf zu db mit den userdaten des users! sobald du eine neue seite öffnest, geht die verbindung flöten und das ist der grund warum ich die userdaten brauche!
                  ich mache auch schon eine persistente db verbindung, aber diese braucht ebenfalls das pw vom user um zu überprüfen ob die verbindung schon hergestellt wurde!

                  Kommentar


                  • #10
                    wahsaga hat genau das gesagt, was ich meinte ...
                    wenn du das so machst, solltest du keine probleme haben.
                    im übrigen mache ich das ähnlich.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      das problem ist, das skript baut eine verbindung auf zu db mit den userdaten des users!
                      du benutzt das spezielle user-passwort auch als passwort für die datenbank?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        das ding auf dem db läuft ist ein mittleres system. auf diesem sind schon alle user vorhanden. nun wollte man das rad nicht neu erfinden und so muss sich jeder user mit seiner eigener kennung anmelden, anderes wird die verbindung gar nicht aufgebaut. Ich wollte es anderes aber das stand nicht in meiner macht. dafür darf ich es jetzt ausbaden. im normalfall macht mir das ganze spass, aber dieses skript ist für mich mehr eine qual, da ich ansehen muss wie es anders viel einfacher & schneller gehen würden!

                        habs jetzt mit base64_encode & base64_decode funktion und verschiedenen arten von zeichenkettenmisshandlungen "verschlüsselt".

                        danke für die antworten

                        larix

                        p.s. das mit der allesokey variable hab ich immer noch nicht geschnallt!

                        Kommentar

                        Lädt...
                        X