Sven Rautenberg: Sicheres Filesharing übers Netz

Beitrag lesen

Moin!

ich arbeite zur Zeit an einem Internet Service bei dem sehr grosse Datein (ca 20-50 MB) vom Kunden hochgeladen werden sollen. Diese Datei wird von mir bearbeitet und dann kann sich der Kunde diese Datei wieder herunterladen.

Das Hochladen riesiger Dateien schließt leider gewisse Standardtechniken aus, sofern sie nicht explizit daraufhin konfiguriert wurden:

HTTP-Upload mit PHP: Der Standardwert als Dateigröße liegt bei 2 MB.
Mail: Alle beteiligten Mailserver müssen die maximal vorkommende Dateigröße erlauben. Es gibt in dem Sinne keinen Standard, aber viele Mailserver erlauben keine riesigen Attachments, sondern evtl. nur 2 MB.
FTP: Das ist das klassische Protokoll zur Dateiübermittlung und im Prinzip sehr gut geeignet. Nachteil: Sicherheit. Es arbeitet unverschlüsselt, auch bei den Passworten.
SFTP bzw. SCP: Im Prinzip der Nachfolger von FTP. Verschlüsselt, auf Basis von SSH. Nachteil: Extra-Client notwendig, Browser kennen das noch gar nicht (vielleicht mit Ausnahme vom Konqueror, der IIRC mit allen möglichen Modulen ausgestattet werden kann).

Nun meine Frage:
Bevor ich mich jetzt ans PHP / Datenbank - Schreiben mache, gibts da schon eine fertige Lösung/Service ev. sogar mit Webspace? Das Ganze soll schon recht sicher werden, daher wäre mir eine fertige Lösung schon recht ;-)

Datenbankschreiben ist zumindest für die Dateispeicherung absolut nicht zu empfehlen. Und ob du zur Verwaltung der Downloads und Accounts eine Datenbank brauchst, weiß ich auch nicht.

Der Upload ist das Problem, du brauchst, wenn es per HTTP gehen soll, einen Server, auf dem du das einstellen kannst. Trotzdem gibt es eine obere Grenze, die ohne Ankündigung nicht überschritten werden kann.

Der Download hingegen dürfte relativ simpel per HTTP-Authentifizierung geschützt funktionieren können. Ist allerdings dann auch genauso sicher oder unsicher, wie FTP (unverschlüsselte Passworte).

Tatsächlich würde ich dir empfehlen, einen FTP-Server einzurichten. FTP und die dazugehörigen Programme sind einfach besser auf das Senden riesiger Dateien eingerichtet. Dazu gehören so Sachen wie die Wiederaufnahme abgebrochener Datentransfers etc.

Mit Passwort/Userverwaltung kannst du jedem Kunden einen eigenen Bereich mit eigenem Upload- und Downloadverzeichnis einrichten, so dass niemand sonst davon etwas sieht.

Wenn FTP wegen der Passworte zu unsicher sein sollte, bleibt dir sowieso nur wenig Alternative: Du mußt zwingend SSL einsetzen, also HTTPS oder SFTP. HTTPS erfordert zwingend, dass die Domain auf einer eigenen IP (Standardport 443)läuft (anders funktioniert SSL nicht), virtuelle Hosts sind damit nicht so einfach möglich (man kann Nicht-Standardports parallel benutzen, muß dann den Port aber immer mit angeben).

SFTP könnte hinsichtlich der Abgrenzung der sichtbaren Dateibereiche vom restlichen Dateisystem problematischer sein - das habe ich so genau noch nicht untersucht.

- Sven Rautenberg