Datei Download vom Server

Joob

Top Contributor
Ich habe folgende Frage:

Ich möchte gerne Dateien von einem Server downloaden, uploaden und löschen.
Das habe ich auch schon programmiert.
Läuft alles per SFTP mit jsch.
Soweit so gut.

Da ist nur die Sache mit dem Usernamen, Passwort und dem SSHPublicKey.
Wie macht man so was. Es heißt doch man soll keine Passwort beim Client haben sondern nur auf dem Server.
Nur wie soll ich dann per SFTP herunterladen.

Ich hatte an PHPScript gedacht, aber wenn ich das auf dem Server ausführe liegt die Datei am Ende auf dem
Server, ich will sie aber zum Client bekommen.

Am liebsten würde ich einen http Request auf ein PHP schicken, welches dann die Datei als Stream oder so ausgibt und
diesen Stream dann beim Client als Datei speichern. Damit könnte ich alle Passwort auf dem Server behalten.

Wie macht man so was richtig.
 

httpdigest

Top Contributor
Die Frage ist hier nicht, ob per SFTP oder PHP etc., bzw. wie genau du die Datei nun vom Server zum Client bekommst, sondern:
1. Muss der Client gegenüber dem Server nachweisen, wer er ist?
2. Muss der Benutzer/User, der den Client benutzt, beweisen, wer er ist?

Die Beantwortung der 1. Frage mit "ja" wird darauf hinauslaufen, dass du ein Vertrauensverhältnis zwischen dem Client und dem Server etablieren musst. Hier besteht aber _immer_ die Unsicherheit, dass dieses Vertrauensverhältnis gebrochen wird und sich z.B. andere Clients als _dein_ Client ausgeben, indem sie z.B. Zertifikate oder andere Secrets/Credentials auf deinem Client auslesen.

Üblicherweise wählt man 2. Hier wird kein Vertrauensverhältnis zwischen Client und Server vorausgesetzt, sondern nur zwischen Benutzer/User und Server. Dem Benutzer wird also vertraut, dass er etwas weiß, jemand ist oder etwas hat (die drei Typen von Information für Authentifizierung), womit er sich gegenüber dem Server authentifizieren kann.
Du hinterlegst also keine Credentials im Client, sondern beim User/Benutzer.
 

Joob

Top Contributor
Wenn Du von User/Benutzer redest, dann meinst Du den Benutzer des Servers oder.

Was genau meinst Du mit Credentials im User, um diese zu verwenden müsste ich wieder Zugangsdaten im Client haben.

Wenn das Du den User auf dem Server meinst muss ich mich doch als dieser auf dem Server einloogen.
Wenn ich also SFTP in der Java App auf dem Clientrechner starte muss ich doch dort die Zugangsdaten haben.

Ich hatte an etwas anderes gedacht.
Hab gerade mal versucht meine Vorstellung zu beschreiben ist nicht gut aber eventuell hilfreich um mich zu verstehen. Dafür könnte ich meine neue Api verwenden.
  • download
  • copyJob (From, to) im Client

  • From
  • ist ein HttpRequest(POST) wobei auf dem Server PHP Script aufgerufen wird in dem ein SFTP ausgeführt wird welches eine Datei zurückgibt

  • To
  • Pfad der zum Lokalen Verzeichniss

  • upload
  • sendJob (From, to) im Client

  • From
  • Pfad und Name der Lokalen Datei

  • To
  • httpRequest (put ?) wobei auf dem Server ein PHP aufgerufen wird in dem ein SFTP läuft um die Datei auf dem Server zu speichern als
  • Pfad Datei als Parameter

  • DELETE
  • DeleteJob
  • httpRequest (POST) in dem ein SFTP ähnlich jsch auf gerufen wird um die Datei zu löschen.
Damit hätte ich keine Zugriffdaten auf dem ClientPC und könnte sogar auf weitere nachgeordnete Server zugreifen.
 

httpdigest

Top Contributor
Wenn Du von User/Benutzer redest, dann meinst Du den Benutzer des Servers oder.
Nein. Ich meinen den Benutzer deines Clients also deiner Anwendung auf Nutzerseite, zu der du eine Datei vom Server herunterladen möchtest.
Was genau meinst Du mit Credentials im User, um diese zu verwenden müsste ich wieder Zugangsdaten im Client haben.
Nein. Nur der Benutzer hat die Credentials, nicht der Client. Der Benutzer ist der Mensch. Der Client ist deine Anwendung, die vom Bentzer bedient wird. Im einfachsten Fall muss der Client also den Benutzer zur Eingabe der Credentials auf irgendeine Art und Weise auffordern.

Das Schema, was du eben beschreibst, würde bedeuten, dass überhaupt keine Zugriffssicherung besteht und _jeder_ mögliche Client die Datei herunterladen könnte. Das kannst du natürlich so machen, wenn du keine Zugriffssicherung brauchst.
 

KonradN

Super-Moderator
Mitarbeiter
Du hast die Zugangsdaten beim User. Der gibt diese ein. Im Idealfall noch nicht einmal in Deiner App (Das ist dann die übliche Autorisierung z.B. auf einer Webseite z.B. direkt bei Google). Dann hast Du nur noch einen Autorisierungscode für Deine App, der dann auch nur für Deine App gültig ist (die hat also auch einen "Secret Key", den Du nicht weiter geben solltest).

Bei SFTP könntest Du den Zugang z.B. über einen private Key absichern. Aber das Problem ist halt: Jeder, der den Key irgendwie extrahiert bekommt, der hat dann beliebig Zugriff.
 

Joob

Top Contributor
In dem beschriebenen Schema gehe ich davon aus das der Connect zum Serv.Benutzer im PHP passiert und dann per SFTP eine Datei aus dem Serv.Benutzer geladen werden kann.
 

Joob

Top Contributor
Ich muss glaube ich mal erklären.

es gibt eine App welche auf lokalen Rechnern läuft die nicht im einem Netzwerk arbeiten.
es gibt einen Server mit einem Benutzer der alle Daten der Benutzer verwaltet, dabei wird eine DB verwendet
was aber jetzt keine Rolle spielt, es sind die Dateien wie Soundfiles, Movies, Texte, PDFs und Bilder.

Ich würde gerne diese Datei zum Benutzer bekommen ohne das ich Zugangsdaten bei Ihm habe.
Die Api habe ich durch Token und die Servereinstellungen abgesichert.
 

Joob

Top Contributor
Ach jetzt bin ich nicht richtig auf httpdigest eingegangen. Ja die Clients dürfen die Dateien herunterladen und verwenden, aber du hast recht das ich nicht unbedingt möchte das von außerhalb des Programms mit seiner Logik Dateien manipuliert werden, das ist aber durch den Token gewährleistet.
 

KonradN

Super-Moderator
Mitarbeiter
User ohne Authentifizierung sollen Dateien bekommen ... das kannst du nicht wirklich absichern. Die API bietet nur Security by Obscurity - und das wird früher oder später schief gehen.

Dazu reicht es ja schon, das Programm mit einem Debugger zu verfolgen um so den ganzen Traffic unverschlüsselt mitzulesen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Datei Download Fenster Netzwerkprogrammierung 9
K HTTP Eigener Http Response für Datei-Download Netzwerkprogrammierung 4
A HTTP Download einer Datei mit "Statistiken" Netzwerkprogrammierung 2
Ollek Download einer Datei durch SFTP mit Java Netzwerkprogrammierung 12
P Name der Download-Datei ermitteln Netzwerkprogrammierung 8
P HTTP Problem beim Download von einer Datei Netzwerkprogrammierung 4
E Größe der Datei vor Download ermitteln Netzwerkprogrammierung 3
B knacken bei download von mp3 datei Netzwerkprogrammierung 2
A Bei FTP Übertragung wird Datei nicht komplett übertragen Netzwerkprogrammierung 2
H Datei mit Anhang via http "hochladen" Netzwerkprogrammierung 16
E JCIFS - Smb - Datei kann nur von einem Benutzer bearbeitet werden Netzwerkprogrammierung 1
Aruetiise Socket Datei Endung Netzwerkprogrammierung 6
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
K HTTP Formulare füllen und Datei downloaden Netzwerkprogrammierung 23
B JSch Filetransfer ohne KnownHosts Datei? Netzwerkprogrammierung 0
A Datei erzeugen und auf der Weboberfläche downloaden (Tomcat) Netzwerkprogrammierung 4
Sogomn HTTP Datei herunterladen Netzwerkprogrammierung 13
C Inhalt einer .JPG Datei in einen OutputStream schreiben? Netzwerkprogrammierung 10
F FTP FTPClient Datei lässt sich nicht öffnen Netzwerkprogrammierung 4
F HTTP Serialisierte Objekte aus Datei von Server Netzwerkprogrammierung 1
T Anwendungseinstellungen ohne Datei übertragen? Netzwerkprogrammierung 8
F FTP Einzelne Datei von FTP-Server überprüfen Netzwerkprogrammierung 0
L FTP Lesen einer Datei vom Server - Aufgehangen Netzwerkprogrammierung 0
M jsf-seite beim hinzufügen einer csv-datei in einen ordner aktualiseren Netzwerkprogrammierung 0
D Einfache Verbindung zu Linux Server und Datei auslesen Netzwerkprogrammierung 13
S Datei(XML) per RMI an Server schicken Netzwerkprogrammierung 0
S Datei schreiben über Applet Netzwerkprogrammierung 8
C Socket Datei Übertragung Netzwerkprogrammierung 5
D Datei hochladen zu PHP Server Netzwerkprogrammierung 8
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
D Socket Datei nur stückweise über Socket verschicken Netzwerkprogrammierung 6
T Datei downloaden ohne den Dateinamen zu kennen Netzwerkprogrammierung 2
H Datei in DropBox schreiben Netzwerkprogrammierung 23
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
V Datei auf Server Schreiben Netzwerkprogrammierung 18
N Einen Server als ausführbare Datei exportieren Netzwerkprogrammierung 15
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
B FTP Datei auslesen ohne einloggen möglich? Netzwerkprogrammierung 19
C Datei auf server speichern Netzwerkprogrammierung 16
P FTP Nochmal wachsende Datei per FTP lesen Netzwerkprogrammierung 9
W Datei automatisiert kopieren! Netzwerkprogrammierung 5
P Wachsende Datei per FTP lesen Netzwerkprogrammierung 2
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
S Servlet - Datei kann nicht gelöscht werden Netzwerkprogrammierung 12
G Txt datei von Website downloaden Netzwerkprogrammierung 8
R HTTP Apache HTTP Client: Request mit angehängter Datei Netzwerkprogrammierung 2
I HTTP Datei Uploaden mit http und Sprache anpassen Netzwerkprogrammierung 7
1 Datei senden/empfangen funzt nicht... Netzwerkprogrammierung 5
S ActiveMQ, JMS und Datei übertragen Netzwerkprogrammierung 25
M Socket Datei über Socket versenden Netzwerkprogrammierung 5
U Web Datei downloaden und bei Änderungen wieder zurückspielen Netzwerkprogrammierung 5
M Class-Datei aus Eclipse mit Xampp Netzwerkprogrammierung 4
B Zugriff auf eine Text- und XML-Datei Netzwerkprogrammierung 4
Dit_ FTP, Datei Hochladen Netzwerkprogrammierung 4
J Datei übertragen ja String + datei übertragen nein Netzwerkprogrammierung 5
N Socket TCP Datei Transfer Netzwerkprogrammierung 2
L Java über php datei lesen? Netzwerkprogrammierung 18
P Socket Datei von Client zum Server übertragen --> Weiterleitung an Clients Netzwerkprogrammierung 16
Akrillo Datei per Netzwerk senden Netzwerkprogrammierung 10
L Größe einer Datei auslesen die im Netz liegt Netzwerkprogrammierung 4
weeego Ping über CMD, Umweg über Batch Datei sparen. Netzwerkprogrammierung 17
R Versenden einer MIME-Datei per E-Mail [solved] Netzwerkprogrammierung 5
O Mehrere Datei per DataInput/OutputStream über Socket Netzwerkprogrammierung 12
S StringArray in .txt Datei --> langsam wegen Client/Server!? Netzwerkprogrammierung 16
S Bild-Datei von Servlet an Browser senden Netzwerkprogrammierung 8
U Datei via UDP Netzwerkprogrammierung 8
C Dateigröße einer Datei im Internet ermitteln Netzwerkprogrammierung 2
S Error 404 obwohl die Datei existiert Netzwerkprogrammierung 9
T Datei Herunterladen und ausführen Netzwerkprogrammierung 5
S Mittels Java XML abfragen und nicht die Ausgabe-HTML-Datei Netzwerkprogrammierung 5
C PCAP Datei auslesen Netzwerkprogrammierung 8
F Applet Datei Zugriff Netzwerkprogrammierung 13
G Datei performant im Netzwerk verschieben Netzwerkprogrammierung 4
M [Commons NET] Prüfen, ob auf FTP Datei vorhanden ist Netzwerkprogrammierung 2
Rontu Problem beim Übertragen einer Datei Netzwerkprogrammierung 9
C Dateiübertragung - Datei immer ein 4096faches von n Netzwerkprogrammierung 2
E Applet zum Datei-Upload Netzwerkprogrammierung 3
A FileChannel+SocketChannel:Datei wird nur teilweise übertrage Netzwerkprogrammierung 4
J Gibts die Datei? Netzwerkprogrammierung 3
K Datei-Upload per FTP Netzwerkprogrammierung 2
G Fehlermeldung beim Erzeugen der WSDL Datei unter Axis Netzwerkprogrammierung 2
S über rmi datei übertragen? Netzwerkprogrammierung 2
J Zeilenweises auslesen aus einer Datei über Server Netzwerkprogrammierung 6
G Datei über ObjectInputStream versenden Netzwerkprogrammierung 8
G.I.Joe Datei per POST übertragen Netzwerkprogrammierung 2
B Umfangreiche Batch Datei (Rmiregistry prüfung + Prog. start) Netzwerkprogrammierung 4
V Einen Eintrag aus einer Zip Datei von einem Server laden Netzwerkprogrammierung 2
M Datei auf einem Server ausführen Netzwerkprogrammierung 4
N Dateigröße einer Datei auf einem HTTP-/Web-Server. Netzwerkprogrammierung 9
W fehlerhafte Datei nach Dateitransfer per ServletOutputStream Netzwerkprogrammierung 2
F Datei senden und empfangen Netzwerkprogrammierung 4
B Via Java Datei zu PHP-Script auf Apache hochladen Netzwerkprogrammierung 4
T Datei senden Netzwerkprogrammierung 3
M Datei auf Remoteserver kopieren Netzwerkprogrammierung 8
B Datei speichern unter Netzwerkprogrammierung 10
B Laden einer *.csv Datei von einem Webserver (http-request) Netzwerkprogrammierung 8
R In Text Datei schreiben die auf einem Server liegt Netzwerkprogrammierung 8
S Unix Datei vom Server nach Windows übertragen Netzwerkprogrammierung 8
T Musik-Stream: Server sendet die Datei zu schnell ? Netzwerkprogrammierung 3
T Mit FTP verbinden, einen Ordner erstellen und Datei löschen Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben