tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
342
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    NReim NReim ist offline Mitglied
    Registriert seit
    Mar 2008
    Beiträge
    19
    Ich würde gerne mal mit euch etwas Diskutieren .... undzwar folgendes

    SESSIONS und deren Speicherort ...

    Über den befehl : ini_set ('session.save_path', 'mein/eigener/pfad' );

    möchte ich meine Sessions in einem eigenem Verzeichniss speichern. dieses Verzeichniss liegt aber nicht auf dem DOCUMENT_ROOT sondern eine ebene höher. so das man mit dem Browser nicht an dieses verzeichniss ran kommt ...

    Verdeutlichung :
    DOCUMENT_ROOT = /der/pfad/zu/meiner/root/ -hier die root -

    mein session verzeichniss liegt jetzt so : /der/pfad/zu/meiner/session_hj9f834rj9f
    PS: Zahlen und buchstaben im verzeichniss sollen evtl. hacks erschweren ...

    Wieso warum weshalb : meine erklärung !

    Mein momentaner Wissensstand ist folgender .
    Wenn man sessions auf einem Server startet werden diese wen kein spezieller pfad vorgegeben wird in den Globalen Tempöraren Ordner auf dem Server abgelegt, in diesen Topf haben alle
    Clients mit denen sie sich den Server Teilen zugriff, dort werden also alle Sessions die auf diesem Server gestartet und abgerufen werden gespeichert. Findige Leute könnten nun versuchen sich aus diesem Tepörären
    Ordner zu bedienen um Die Sessiondaten anderer Benutzer zu missbrauchen.

    Die Idee die ich mit meiner Variante anstrebe ist folgende:
    in meinem eigenem verzeichniss habe ich zum einen kontrolle darüber wann die sessions zerstört werden sollen weil dieses verzeichniss nicht vom garbage controller gereinigt wird, und zum anderen habe nur ich ( per FTP ) bzw. der Server der ja das script ausführt zugriff in dieses verzeichniss.

    Nun die frage an euch:
    Stehe ich damit jetzt völlig auf dem Schlauch oder ist dies eine akzeptable lösung ..

    ich bitte um Konstrutive nicht um Destruktive Kritik ... Danke ...
     

  2. #2
    Avatar von EvilO
    EvilO EvilO ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Ort
    Wuppertal (NRW)
    Beiträge
    172
    Hi, deine Lösung hört sich doch ganz gut an, ich verwende zum Beispiel das gleiche Verfahren, damit keine anderen Benutzer auf dem selben Server auf die Sessiondateien zugreifen können. Wichtig ist, dass das Verzeichnis in dem die Dateien gespeichert werden die richtigen Zugriffsrechte hat, damit die Dateien vor allen anderen Benutzern geschützt sind.

    Bist du dir sicher, dass die Garbage Collection nicht in deinem Verzeichnis aufräumt? Soweit ich weiss, werden veraltete Sessions auch dann gelöscht, wenn du sie in einem eigenen Verzeichnis speicherst.
    Geändert von EvilO (20.03.09 um 14:15 Uhr)
     
    "Die Deutsche Rechtschreibung ist Freeware, dass heisst jeder kann sie benutzen wann er will, ohne dafür zu zahlen. Sie ist aber nicht Open Source, also darf sie ohne Zustimmung der Entwickler nicht verändert und weiterverbreitet werden."

  3. #3
    NReim NReim ist offline Mitglied
    Registriert seit
    Mar 2008
    Beiträge
    19
    Hallo EvilO

    Danke erstmal für deine Antwort. Schön zu hören das meine idee nicht ganz bescheuert ist .

    Also der Garbage Controller räumt da schon soweit auf, das ist schon richtig. Aber er macht es auch nur nach der Zeit die ich vorgegeben habe.

    zur erklärung:
    Ich hatte bevor ich ein eigenes verzeichniss für die sessions genommen habe immer das problem gehabt das der garbage controller irgendwie willkührlich zugeschlagen hat, so nach dem motto das einemal hat die session 3 stunden gehalten das nächstemal waren es 7 stunden. Und das obwohl ich die session livetime auf 10 stunden eingestellt hatte ... Nunja und im eigenem verzeichniss klappt das irgendwie besser ! Oder ich hatte vorher irgendeinen anderen fehler gemacht ....
    Obwohl alle befehle die selben geblieben sind, ich habe lediglich das eigene verzeichniss angegeben ...

    Bezüglich der Ordner berechtigung:
    Was wäre denn die richtige cmod einstellung für ein solches verzeichnis kannst du mir da einen tipp geben ?
     

  4. #4
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Ich denke bei Shared Hosting, wie viele Webseiten auf einem Server laufen ist das eine ganz praktische Sache. Immerhin muss ja Apache vollen Zugriff auf /tmp (den Default-Speicherort fuer Session-Files) haben damit Sessions funktionieren koennen.
    Und da auch PHP mit Apache-Rechten laeuft hat es somit auch Zugriff, wenn nicht irgendwie unterbunden.

    Entsprechend hat jede Seite theoretisch Zugriff auf die Sessions anderer Seiten, was natuerlich nicht gewuenscht ist.

    Ich selbst hatte so eine Loesung wie Du eine zeitlang im Einsatz, hatte aber Gruende es aufzugeben. Welche dies waren weiss ich jetzt nicht mehr.
    Ich bin nun auf jeden Fall dazu uebergegangen komplett das Session-Handling zu uebernehmen und habe nun eine Klasse die meine Sessions in der Datenbank ablegt.
    Fuer die Applikation erfolgt dies vollkommen transparent, wie jeder andere auch arbeite ich schlichtweg mit $_SESSION. Nur dass eben im Hintergrund was anderen passiert als "im Original".
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  5. #5
    Avatar von Eagle-PsyX-
    Eagle-PsyX- Eagle-PsyX- ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Beiträge
    149
    Hi,
    hast du zufällig noch irgendwo diese Klasse :-D?

    PS: Wie kann man rausfinden ob mein Server Teil eines sharing webhosting ist (ohne den Service damit zu belästigen)?
     

  6. #6
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Ja, die hab ich noch.
    Siehe der Link in meiner Signatur.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  7. #7
    Avatar von EvilO
    EvilO EvilO ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Ort
    Wuppertal (NRW)
    Beiträge
    172
    Die unterschiedliche Lebensdauer der Session Dateien liegt am Session Garbage Collector von PHP, der wird nämlich nicht bei jedem Seitenaufruf durchgeführt, sondern ist über die Ini-Datei einstellbar. Mit folgendem Code kann man zum Beispiel sicherstellen, das abgelaufene Sessiondateien beim nächsten Aufruf der Website entfernt werden, das wirkt sich allerdings negativ auf die Performance der Seite aus:
    PHP-Code:
    ini_set('session.gc_probability'1);
    ini_set('session.gc_divisor'1); 
    Allerdings wird auch dann nur der Garbage Collector ausgeführt, wenn jemand die Website aufruft.
     
    "Die Deutsche Rechtschreibung ist Freeware, dass heisst jeder kann sie benutzen wann er will, ohne dafür zu zahlen. Sie ist aber nicht Open Source, also darf sie ohne Zustimmung der Entwickler nicht verändert und weiterverbreitet werden."

Ähnliche Themen

  1. Hilfe bei Idee!
    Von EchseKiuta im Forum Creative Lounge
    Antworten: 2
    Letzter Beitrag: 19.07.05, 21:00
  2. Richtige Idee?
    Von evolution1985 im Forum PHP
    Antworten: 3
    Letzter Beitrag: 19.04.05, 13:27
  3. Wer hat die brennende Idee?
    Von myA im Forum Creative Lounge
    Antworten: 9
    Letzter Beitrag: 03.06.04, 12:42
  4. Suche gute Idee
    Von Dr_Ogen im Forum Flash Plattform
    Antworten: 14
    Letzter Beitrag: 22.11.02, 16:57
  5. Meine Idee...
    Von fLoOmY im Forum Smalltalk
    Antworten: 10
    Letzter Beitrag: 04.11.01, 15:39