Natürlich ist das, was du sagst nicht unbedingt falsch. Jedoch unvollständig und leider auch nicht dem Thread entsprechend, wie bereits zuvor festgetstellt.
Das Public in diesem Fall bezieht sich auf ein Public Verzeichnis von Dropbox, dass von jedem gelesen werden kann.
1) Java unterstützt von aus haus nur sehr wenig dinge die mit FTP zu tun haben ... will man meher muss man sich es entweder selbst basteln oder eine LIB nutzen ...
alles was über HTTP läuft kann Java dagegen alles selbst ...
Würde ich so nicht unterschreiben. Ich behaupte, dass man auch mit dem, was Java so bietet wunderbar mit einem FTP kommunizieren kann.
2) wenn ich software verteile die sich auf einen anderen server einloggt ... so muss ich dieser software die login-daten mitgeben ...
zusätzlich braucht der user auch entsprechende schreib-rechte wenn daten auf dem server gespeichert werden sollen ...
und wenn du so überzeugt bist das FileZillaServer da so gut gegen gerüstet ist ... dann erklär mir doch mal bitte wie man damit verhindern soll das ein user die login-daten ausliest *welche laut FTP text/plain übertragen werden müssen* ... sich mit z.b. dem FileZilla - client auf diesem einloggt und nun willkürlich daten hochläd ...
ich glaube kaum das du da viel machen kannst
Ohh und via HTTP werden Daten verschlüsselt übertragen? Sorry, du schreibst hier sachen, die einfach mist sind. Wieso muss ich die logindaten der software mitgeben, wenn diese sich auf einem Server einloggen soll? Und ist das bei einem HTTP Webservice anders? Und brauche ich beim HTTP Webservice keine schreibrechte? Aber wie soll ich dann Dateien hochladen? Und was hindert mich daran einen beliebigen Webservice Client zu schreiben und müll hochzuladen??
Hinweis: Diese Fragen sind retorisch zu sehen. Ich verstehe nur nicht, wieso du nicht merkst, dass beide Lösungen konzeptionell identisch mit nahezu den gleichen Möglichkeiten ausgestattet sind nur andere Technologien und Vereinbarungen nutzen.
mit einem simplen php-script kann man hier schon mehr erreichen ...
z.b. kann man die daten nach bestimmten mustern *vorzugsweise magic-numbers* scannen und bei fund einer unzulässigen sequenz einfach wieder vom löschen ... ohne das der client davon was mitbekommen muss *man kann ja trotzdem die meldung ausgeben : file uploaded ... was ja mit dem vollständigen senden des files an der server auch der fall ist ... was das user-script dann weiter mit diesen daten macht muss man ja nicht verraten
gut ... jetzt kann man natürlich kommen : nutz-daten verschlüsseln und in z.b. einem bild oder einer audio-datei tarnen ... aber es fällt auf wenn z.b. ein bild größer als 5MB-10MB ist ... oder auch eine audio-datei einige MB überschreitet *ich lasse WAV mal bewusst außen vor* ...
und sowas kann man z.b. auch prüfen ...
*man kann z.b. mit einem geeigneten backend die daten so scannen um den payload zu analysieren*
Obwohl ich keine Funktion von Filezilla kenne, dass das macht, ist das hier Aufwand, der niemals rechtfertigt zu sagen, dass ein HTTP Webservice hier die einzige Lösung ist. Wenn ich mein FTP Server so anpasse, erweitere, dass er das macht, dann macht er das auch. Aber dadurch, dass ich einen fertigen FTP Server nutze, habe ich mit 10 % aufwand 90 % meiner Anforderungen erfüllt.
Dieses Szenario ist total an den Haaren herbeigezogen und wird hier niemals angewendet werden. Und niemals ist das hier "simples php"
3) da als client ein java-applet eingesetzt wird würde sich auch ein java-backend anbieten ... *um mal nicht zu sehr auf PHP zu fixieren*
dadurch kann man ein eigenes protocol und verarbeitung der daten einbringen ... wodurch sich z.b. syntax-checks anbieten ... oder man auch mit JCE die verbindung leicht mit AES128-CBC sichern kann ...
ein "angreifer" müsste dann also erstmal dort "einbrechen" *gerade in verbindung mit RSA* ... was dann schon den aufwand zum "knacken" so weit erhöt das der nutzen den man daraus ziehen würde diesen aufwand vermutlich nicht mehr lohnt ...
Der TO hat keinen Server mit Java. Aber hauptsache hier mehr Text schreiben in der Hoffnung "Liest sich ehh niemand durch".
Selbst wenn, bis du das impementiert hast, habe ich mir 100 mal einen sftp server hingelegt und konfiguriert.
4) ob jetzt drop-box oder FTP ... unsicher ist alles so lange im clienten irgendwelche login-informationen mit ausgeliefert werden ...
und genau dafür hat man das webservice-pattern ... eine schicht die ohne dierekten zugang zum server nicht *bzw nur sehr schwer* manipuliert werden kann ... aber dennoch einen "public" datenaustausch ermöglicht ... was das ganze um längen sicherer macht ...
Der erste satz ist ja noch stimmig. Aber was danach kommt ist einfach nur müll. Sorry, wie unterscheidet sich der auth von einem HTTP und einem FTP? Die Schlussfolgerung ist einfach falsch. Und die Webservice Qualitäten zeichnen sich bei ganz anderen Dingen ab, nur nicht gerade das, was du hier Ausdrükcken möchtest.
so ... und jetzt möchte ich bitte mal argumente hören warum FTP in diesem fall einfacher wäre ...
zu erinnerung :
1) für FTP bräuchte man eine LIB bzw hätte viel schreibarbeit ... würde bei HTTP entfallen ...
2) login-daten werden preisgegeben
3) FTP-Server können nur schlecht gegen das einschleusen manipulierter daten geschützt werden
4) aufwand zur "sicherung" ist größer als der nutzen der "sicherheit" und bietet damit eine größere angriffsfläche ... bei einem webservice würde es sich umgekehrt verhalten : mit relativ wenig aufwand große sicherheit erzielen
1) FTP braucht man keine LIB. Es sei denn man will es sich sehr einfach machen. Und selbst dann, wäre die Verarbeitung von HTTP Daten ohne Libs viel aufwändiger.
2) Nein werden sie nicht. Wieso auch? Man richtet entsprechende User im FTP Server ein. Weiterhin trifft diese Einschränkung auch auf dein webservice zu. Hier würdest du auch von dem user die pws abfragen oder wo wären die dann?
3) HTTP Webservices, wenn es sich , wie hier, um Binärdaten handelt ebenso.
4) Nein. Einen gesicherten Webservice, wie du ihn ansprichst müsste man sich auch iwo fertig downloaden. Jede eigene Implementierung wäre nicht so gut, wie die eines Teams, dass sich nur damit beschäftigt. Hier würde man ein Axis oder Axis2 Framework nutzen müssen. Wären man so ein FTP Server nur downloadet und startet. Ansonsten hast du die Sicherung auf dem Transportlayer und nicht application.
Zusammenfassend: Die korrekte Lösung für dieses Problem ist die nutzung eines FTP Servers, der Zugriff auf einen durch einen apache oder anderen Webserver gelesenen Verzeichnis mit directory listing hat. Ein Webservice übersteigt den Aufwand des nutzenz um manipulierte binärdaten um ein vielfaches. Und hat keine Vorteile gegenüber einem FTP Server. (in diesem fall).