Hallo pl und Fastix,
ihr rührt da eine Menge durcheinander…
-
Der Anwender macht einen Upload. Das impliziert den Willen des Anwenders, Daten auf dem System des Webseitenanbieters zu speichern. Je nach Webseite erfolgt die endgültige Speicherung in einer Datei oder in einer Datenbank, jedenfalls nicht dort, wo die Temp-Dateien des Upload liegen. Siehe auch den nächsten Punkt. Gespeichert wird auf dem gleichen Server oder auf einem anderen. Beim gleichen Hoster oder bei einem anderen. Die Datenschutzerklärung muss diese Umstände natürlich dokumentieren, es müssen DSGVO-konforme Abläufe implementiert sein, und der Anwender muss die Kenntnisnahme und Akzeptanz bestätigen bevor er etwas hochlädt. Das hat aber nichts mit den prinzipiellen Abläufen beim Upload zu tun. Das ist der juristische Rahmen.
-
Dass bei einem Upload Temp-Dateien angelegt werden, braucht die Datenschutzerklärung nicht zu interessieren. Das ist lediglich eine mögliche Technik zum Handhaben von Uploads, und damit Teil des Datenverarbeitungsablaufs, der den Upload-Wunsch behandelt. Nach Ende des Upload-Requests löscht PHP die Temp-Dateien. Es findet also keine dauerhafte Speicherung statt. Siehe hier:
The file will be deleted from the temporary directory at the end of the request if it has not been moved away or renamed.
. Es KANN natürlich sein, dass PHP-Bugs oder ein plötzlicher Servercrash dazu führen, dass Dateien stehen bleiben. Ein Tool, dass im Temp-Ordner Dateien abräumt die länger als einige Minuten nicht angefasst wurden, ist also schon wichtig. Die stehen gebliebenen Dateien sind bis dahin unspezifischer Datenmüll. Weder kann man sie automatisch einem User zuordnen, noch haben sie einen sinnvollen Namen. Andere Uploads greifen nicht darauf zu (weil die andere Temp-Namen bekommen). Aus Sicht der normalen Verarbeitungsabläufe existieren diese Dateien nicht. -
Auf Grund des gesetzten juristischen Rahmens ist Speichern des Uploads am dokumentierten Ort also kein Problem. Ich darf speichern. Der Anwender will das. Das ist sein Datenverarbeitungsauftrag an mich. Wenn der Anwender seine Daten nicht auf Systemen Dritter sehen will, ruft er die Uploadfunktion nicht auf. Um mit Fehl-Uploads umzugehen, kann ich eine Bestätigungs- oder Löschfunktion bereitstellen. Damit wird ein Fehlupload aus der Dateiablage entfernt.
-
Fehl-Uploads (oder spätere Löschwünsche) können auch bei einem Upload-Form mit eigenem Submitbutton vorkommen, deswegen brauche ich eine Funktion zum Entfernen von Uploads ohnehin.
-
Eine parallel verarbeitende Umgebung ist kein Problem. Wenn ich foo.txt hochlade, speichert PHP diese Datei ja nicht als foo.txt im Uploadverzeichnis, sondern vergibt einen Temp-Namen. Application Bugs könnten dazu führen, dass bei der Ablage der Uploads Daten vermengt werden. Das ist aber wieder vom Uploadverfahren unabhängig.
Also: Die Verwendung von Temp-Dateien ist ok. Ob ich das am Client mit File API mache oder mit FormData, ist Wurscht. PE findet statt (vorbehaltlich der Frage, ob es ein E ist oder nicht). Wenn man einen handgemachten enctype und eine handgemachte serverseitige Verarbeitung haben will - na meinetwegen. Das sind Implementierungsdetails.
Die einzige relevante Frage ist die, die Fastix aufgeworfen hat, nämlich, dass man sich bei der Dateiauswahl verklickt und statt des gewünschten Bildes ein anderes ausgewählt hat. Fallbeispiel: Screenshot mit einem Application-Fehler, für den man Support möchte. Ich habe per Malprogramm darin die Kundendaten unkenntlich gemacht. Verpeilt, wie ich bin, wähle ich die unverpinselte Version aus. Dann klicke ich im Auswahldialog OK und der Upload läuft los, ohne dass ich nochmal den Dateinamen überprüfen kann. Und die Datei ist bis zu dem Moment, wo ich Ups schreie und "Löschen" klicke, auf dem Server. In wie vielen Prozent der Irrtumsfälle ein zusätzlicher Submit-Button hilft, den Irrtum zu vermeiden, müsste man ohnehin erstmal erforschen. Ein entschlossener Depp baut entschlossen Deppenfehler.
Ob das ein echtes Problem ist, muss Michi für den vorliegenden Anwendungsfall beurteilen. Vielleicht will er ja nur seine Urlaubsfotos archivieren.
Rolf
sumpsi - posui - clusi