Sven Rautenberg: verhindern das excel-files upgeloadet werden

Beitrag lesen

Moin!

KANN mir jemand einen tip geben wie excel dateien auf anderem wege auschliessen kann?

Du mußt einfach in der hochgeladenen Datei nachsehen, ob sie als Format den Anforderungen der Datenbank genügt. Das bedeutet: Lies die Datei in PHP ein, und schau, ob nur ordentliche Buchstaben, Zahlen und Sonderzeichen vorkommen, und vor allem: Kommas (oder was auch sonst als Trennzeichen verwendet wird).

Die Prüfung, ob der Browser den richtigen Mime-Typ mitgeschickt hat, ist zum Scheitern verurteilt: Diese Angabe kommt vom Browser, der aber Excel- oder CSV-Dateien genauso gut unterscheiden kann wie ein Blinder - und PHP übernimmt einfach nur diese Angabe. Wenn also der Browser sich irrt, und du auf den Browser vertraust, irrst du auch.

Generell würde ich das Hochladen und Einfügen von CSV-Dateien in eine Datenbank als äußerst kritisch sehen. Es mag funktionieren, aber es bietet reichlich Angriffsfläche. Wenn du nicht, wie oben vorgeschlagen, die CSV-Datei probeweise einliest und auf Kompatibilität mit der Datenbank prüfst, indem du z.B. die Anzahl der Felder pro Zeile nachzählst, und möglicherweise auch die Datentypen testest, dann handelst du dir über kurz oder lang Ärger ein. Das Beispiel mit den falschen Excel-Dateien ist nur der Anfang.

- Sven Rautenberg