Ein paar Sicherheitsüberlegungen zu $_SESSION und $_COOKIE

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

  • Ein paar Sicherheitsüberlegungen zu $_SESSION und $_COOKIE

    Moin,

    dass man jeglichen Input über GET und POST escapen, bzw. überprüfen sollte ist mir wohl bekannt. Aber wie sieht es den mit den Variablen aus $_SESSION und vor allem $_COOKIE?
    Wenn ich ein SQL String nach dem Motto "select * FROM 'users' WHERE user = $_COOKIE['username']" hab ich doch eine astreine Injectionmöglickeit. Und sobald jemand auf das Filesystem in den Sessiondateien rumfuscht gilt doch auch hier das gleiche. Also auch hier Werte escapen und irgendwie validieren?

    Gruß Georg

  • #2
    natürlich.
    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
      COOKIE: sinnvoll
      Warum:
      Daten können vom User nach Belieben geändert werden, daher bei jeder Verwendung validieren



      SESSION: überflüssig
      Warum:
      Direkter Zugriff auf Session ist nur möglich, wenn jemand direkten Zugriff auf den Server hat => Dann hast du ganz andere Probleme.

      Du solltest die Daten, die in die Session kommen, beim Reinschreiben validieren, dann kannst du sie gefahrlos verwenden.
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Ich schreibe gerade an einer Request Klasse, die als erstes die Supergloblas überprüft und im weiteren Code wird immer auf die validierten Werte zugegriffen (hoffentlich ). Session packe ich jetzt einfach mal dazu, schadet ja auch nicht. Und da in der Regel die Sessiondaten im /tmp Verzeichnis liegen wo bei Shared Hosting schon mal mehrer zugreifen können ist das wohl schon eine sinnvolle Entscheidung.

        Kommentar


        • #5
          Ebenfalls mit Vorsicht zu genießen: Bestimmte Werte aus $_SERVER.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Wenn es ein Problem ist, könnte er die $_SESSION Variabeln mit einem Hash (mit geheimzahl dh Schlüssel) sichern, und ausserdem seine $_SESSION Daten in nur 1 $_SESSION Variable als array abspeichern.

            Kommentar


            • #7
              Ich benutze für das aktuelle Projekt eine Datenbank für die Session, genauer gesagt die "************y" secure_session Funktion von ADODB, die bereits die Daten verschlüsselt ablegt.

              Aber meine Klasse soll ja wiederverwertbar werden.

              SERVER Variabeln müssen auch validiert werden? Wie denn? Gibt es da was zu beachten?

              Kommentar


              • #8
                Original geschrieben von MasterG
                SERVER Variabeln müssen auch validiert werden?
                Jein.
                Eher escaped, falls man sie in der Seite ausgeben will - sonst ist in Einzelfällen XSS möglich.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Ok vielen Dank für die schnelle Antworten!

                  Kommentar

                  Lädt...
                  X