dedlfix: File Upload und Sicherheit

Beitrag lesen

Tach!

a) Die Files sollen nur dem User zur Verfügung stehen, dem sie zuzuordnen sind. b) Die Files müssen wieder gelöscht werden.

Mit war so, als hätte ich irgendwo was aufgeschnappt, dass das im Zusammenhang mit Session geht.

Eine Session speichert Daten zu einem Nutzer, den man über ein Token identifiziert, das meist in einem Cookie abgelegt wird. PHPs Session-Mechanismus ist hinreichend einfach zu verwenden und auch oft dokumentiert.

Quasi ein Verzeichnis, dass innerhalb der Session zur Verfügung steht, damit klar einem User zuzuordnen wäre und auch nur so lange existiert. Gibt es sowas?

Njein. Eine Session ist eine Datei, in der die Daten serialisiert abgelegt sind. Um eine Datei einer Session zuzuordnen, kannst du ihren Inhalt in die Session schreiben, oder nur ihren Dateinamen und sie anderswo ablegen. Im ersten Fall verfällt der Inhalt zusammen mit der Session, im zweiten nicht. Der PHP-interne Session-Garbage-Collector räumt zwar auf, hat aber keine Schnittstelle, über die man sich in den Löschprozess einklinken könnte, um so noch weitere Aufgaben zu erledigen. Das kannst zwar den eingebauten SessionHandler beerben und damit alles oder auch nur Teilaspekte überschreiben, kannst aber auch hier nicht nur den Löschvorgeng überschreiben, sondern musst den gesamten Garbage-Collection-Teil ersetzen.

Siehe PHP-Handbuch zu den Sessions, dort den Teil SessionHandler - The SessionHandler class.

dedlfix.