Klingon: Wie sicher sind Sessions?

Hallo,

ich arbeite an einem System in dem  ich die ID des jeweiligen Nutzers in einer Session ablege.

Damit kann er, nachdem er sich eingeloggt hat, durch das System navigieren und wird immer entsprechend der abgespeicherten Session als legitimierter (angemeldeter) User erkannt.

Gibt es bei dieser Art von "Seitenmanagement" Sicherheitsbedenken?
Wenn ja, wie kann ich die Sessions absichern?

Danke im Voraus,
Klingon

  1. echo $begrüßung;

    Gibt es bei dieser Art von "Seitenmanagement" Sicherheitsbedenken?

    Es sind welche im PHP-Handbuch-Kapitel Session Handling Functions aufgeführt.

    Wenn ja, wie kann ich die Sessions absichern?

    Das kommt ganz auf die konkreten Bedingungen an, unter denen dein Script laufen soll.

    Nur zwei Beispiele: Hast du keine eigene Domain sondern nur ein Unterverzeichnis auf einem Homepage-Hoster (users.example.com/klingon/...) dann können Cookies von anderen Seiten unter dieser Domain ausgelesen werden. Dies müsste man mit session.cookie_path verhindern können.

    Session-Daten werden als Dateien auf dem Server abgelegt. Per Default werden sie unter /tmp abgelegt (session.save_path). Da hat meist das gesamte System lesenen und schreibenden Zugriff. Bei einem Shared Server können alle Kunden diese Daten lesen, wenn der Provider keine anderen Einschränkungen vorgenommen hat.

    usw. usf.

    Spezifiziere genauer, wie das System aussieht, ob andere auf dem System Dinge laufen haben, ...

    echo "$verabschiedung $name";

    1. Hallo,

      Spezifiziere genauer, wie das System aussieht, ob andere auf dem System Dinge laufen haben, ...

      Es handelt sich um einen Root-Server (managed).

      Ist es denn generell möglich von aussen auf Dateien auf den Server zuzugreifen? (z.B. mit include),... wenn man den Dateinamen und das Verzeichnis kennt?

      Wenn ja, wie kann man das unterbinden?

      Danke,
      Klingon

      1. Nachtrag:

        Mit Dateien meine ich ".php" Dateien, in welchen MySQL-Abfragen stecken.

        Grüsse,
        Klingon

      2. hi,

        Es handelt sich um einen Root-Server (managed).

        Ist es denn generell möglich von aussen auf Dateien auf den Server zuzugreifen? (z.B. mit include),... wenn man den Dateinamen und das Verzeichnis kennt?

        Das kommt darauf an, ob sie über HTTP erreichbar sind.

        Wenn ja, wie kann man das unterbinden?

        In dem du den Ablageort dieser Dateien mit Bedacht auswählst, und den Server ebenfalls mit Bedacht konfigurierst.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hallo,

          Das kommt darauf an, ob sie über HTTP erreichbar sind.

          Wie kann ich das verhindern?

          Wenn ja, wie kann man das unterbinden?

          In dem du den Ablageort dieser Dateien mit Bedacht auswählst, und den Server ebenfalls mit Bedacht konfigurierst.

          Ich verwende einen managed Server, d.h. die Konfiguration nimmt der ISP vor. Wie kann ich testen ob dieser dementsprechend konfiguriert wurde?

          Welchen Ablageort sollte man für Dateien wählen?
          Bis dato habe ich einfache Verzeichnisse angelegt und die Dateien dort plaziert. Anhand der Statusleiste ist es jedoch leicht herauszufinden wie die Verzeichnisstruktur aussieht.

          Grüsse,
          Klingon

          1. hi,

            Welchen Ablageort sollte man für Dateien wählen?

            Für Dateien, die nicht über HTTP abrufbar sein sollen, wählt man idR. einen Ablageort ober-/außerhalb des Web Roots.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Hallo,

              Für Dateien, die nicht über HTTP abrufbar sein sollen, wählt man idR. einen Ablageort ober-/außerhalb des Web Roots.

              • meinst du mit oberhalb, im gleichen oder einem höheren Rang als mein html/ verzeichnis?

              • wenn ich die Datei mit der ich die Datenbankverbindungen (als "include datei.inc.php") herstelle darin auslagere, würde das das genügen?!

              Grüsse,
              Klingon

              1. hi,

                Für Dateien, die nicht über HTTP abrufbar sein sollen, wählt man idR. einen Ablageort ober-/außerhalb des Web Roots.

                • meinst du mit oberhalb, im gleichen oder einem höheren Rang als mein html/ verzeichnis?

                Das kommt darauf an, ob html/ dein Web Root ist.

                • wenn ich die Datei mit der ich die Datenbankverbindungen (als "include datei.inc.php") herstelle darin auslagere, würde das das genügen?!

                IdR. ja.

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }