Andre: Sicheres Filesharing übers Netz

Hallo an Alle,
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.
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 ;-)

Beste Dank und viele Grüsse,
Andre

  1. 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

    1. Hallo,
      vielen Dank für die ausführliche Antwort!
      Also einen FTP-Server. Gibt es da vielleicht schon ein Produkt? FTP-Space und Client-FTP-Server einer Firma für genau diese Zwecke? Werde hier jetzt auch noch die Suchmaschinen befragen...
      Beste Dank,
      Andre

      1. Moin!

        Also einen FTP-Server. Gibt es da vielleicht schon ein Produkt? FTP-Space und Client-FTP-Server einer Firma für genau diese Zwecke? Werde hier jetzt auch noch die Suchmaschinen befragen...

        Sowas ist kein Massenprodukt wie "Webspace", dass man bei jedem Provider für wenig Geld einkaufen kann.

        Entweder hast du einen eigenen Server, wo du entsprechend installieren und konfigurieren kannst, oder du findest einen tendentiell eher kleineren Provider, der dir entsprechend sowas einrichtet. Ein Massenhoster wie 1&1 oder Strato würden nur passen, wenn das Feature "FTP-Server mit multiplen Zugangsaccounts und Zugriffsbeschränkung" im Paket enthalten ist - und das wird tendentiell erstens relativ teuer, d.h. du kaufst viel mit, was du eigentlich nicht brauchst, und zweitens paßt es dann vermutlich doch nicht 100% individuell.

        Deshalb viel Erfolg bei der Suche.

        - Sven Rautenberg

      2. Hallo Andre,

        Auch für größere Uploads ist HTTP geeignet, es gibt ja sogar eine Erweiterung von HTTP zur Dateiverwaltung. Man muss halt den Server entsprechend Konfigurieren.
        Wenn für die Sicherheit wirklich eine Rolle spielt, dann schließt das den Einsatz eines unverschlüsselnden Protokolls aus. Du solltest Dir also gut überlegen, ob Du das wirklich nicht brauchst.

        SFTP hat gegenüber FTP meiner Meinung nach keine Nachteile.
        Um Dateien mit FTP hochzuladen, ist auch ein spezieller Client notwendig und es gibt hinreichend viele Clients, die SFTP unterstüzen.

        Grüße

        Daniel

        1. Hallo Daniel,

          SFTP hat gegenüber FTP meiner Meinung nach keine Nachteile.
          Um Dateien mit FTP hochzuladen, ist auch ein spezieller Client notwendig und es gibt hinreichend viele Clients, die SFTP unterstüzen.

          Mindestens einen FTP-Client hat nahezu jeder auf seinem Rechner:
          Kommandozeilen-FTP

          Benutz' ich oft. Empfehle ich gern weiter, wenn Leute Klimmzüge machen,
          um ihrem grafischen FTP-Client beizubringen, was ein simpler 10-Zeiler
          auf der Kommandozeile macht.

          OK, ich bin nicht der typische Benutzer.

          Freundliche Grüsse,

          Vinzenz