Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   FTP Server (https://www.delphipraxis.net/178836-ftp-server.html)

Luki206 30. Jan 2014 16:00

FTP Server
 
Hi,
ich habe schon eine halbe Ewigkeit gegooglet habe aber kein passendes Tutorial für einen FTP Server gefunden, selbst hier im Forum auch nicht.. Ich habe Indy 10.6....
Kennt jemand ein gutes Tutorial dazu?
Danke
Luki :)

Edit: Grund für den Server ist da ich eine Software schreiben will die Daten von meinem FTP-Server von Magix laden soll. Nur weiß ich jetzt nicht wie sicher die Software ist also wegen Passwort und allem damit da einer nicht 'pfuschen' kann.

himitsu 30. Jan 2014 16:15

AW: FTP Server
 
Was willst du machen?

Einen eigenen FTP-Server schreiben, der als eine Art Proxy die Zugriffe auf einen anderen FTP-Server weiterleitet, oder wie?
Ich glaub kaum, daß du dafür ein Tutorial finden wirst.

Nja, Tutorials lassen sich eventuell finden, für einen "normalen" FTP-Server, wo du einfach nur die Zugriffe auf die Dateien von deiner TIdFTPServer-Instantz auf einen TidFTP weiterreichen mußt.
Ansonsten einfache TidFTPServer auf die Form/Datenmodul, dann bei den Property alles Wichtige einstellen, danach noch alle möglichen Ereignisse im OI durchklicken und das was wichtig aussieht, oder wo es eine passende Funktion im TidFTP gibt, da wird was implemmentiert/weitergeleitet.

Zitat:

Nur weiß ich jetzt nicht wie sicher die Software ist
Welche?

Die bei Magix oder dein TidFTPServer?

TidFTPServer ist so sicher, wie du es implementierst, bzw. was alles aktiviert/angehängt wurde.

Luki206 30. Jan 2014 16:24

AW: FTP Server
 
Tut mir leid, ich weiß ich habe mich mal wieder etwas kompliziert ausgedrückt. Ich habe vor eine Software zu schreiben die auf einen FTP-Server etwas schreibt. Nur weiß ich jetzt nicht wie sicher meine Software dann ist, deshalb wollte ich mir dann einen eigenen Server schreiben weil dann kann nicht groß was geklaut werden. ;) Mir ist das ja auch nur so wichtig da der Server auf meinen Vater angemeldet ist.
Danke
Lukas :)

Edit: Da ich ja dann auch das Passwort und den Benutzernamen in der Software hinterlegen muss bin ich ein wenig skeptisch ;)

himitsu 30. Jan 2014 16:34

AW: FTP Server
 
Passwort und Benutzer für den anderen FTP-Server mußt du ja auch hinterlegen.
Und ob es jetzt sicherer wird, wenn du einen eventuell unseren Server dazwischen legst?

Du mußt beim großen FTP-Server nur einen "gesicherten" Zugang anlegen.
Also der darf nur auf die nötigen Verzeichnisse Zugriff haben. eventuell nur mit Leserechten oder nur Schreibrechten, wenn nur gelesen oder gespeichert werden soll.
Und du kannst eventuell auch sowas wie FTPs oder SFTP nutzen, also via SSH die Datenübertragung verschlüsseln.

Oder du überlegst dir, ob FTP überhaupt das passende Protokoll ist.

Luki206 30. Jan 2014 16:40

AW: FTP Server
 
Was wäre deiner Meinung nach ein geeigneteres Protokoll? :)

mjustin 30. Jan 2014 17:41

AW: FTP Server
 
Zitat:

Zitat von Luki206 (Beitrag 1246021)
Was wäre deiner Meinung nach ein geeigneteres Protokoll? :)

HTTPS (also HTTP mit zusätzlicher Verschlüsselung über SSL/TLS). Mit Indy (TIdHTTP Komponente) und OpenSSL ist das überschaubarer Aufwand, solange man den Server nicht selber schreiben muss.

himitsu 30. Jan 2014 18:52

AW: FTP Server
 
Es kommt auch auf die Daten drauf an,
bzw. wann, wie, wozu, wie oft usw. darauf zugegriffen wird
und was für Möglichkeiten überhaupt auf dem Server zur Verfügung stehen.

Eventuell kommt auch sowas wie REST, SOAP, DataSnap und sonstewas in Frage.

Luki206 30. Jan 2014 19:36

AW: FTP Server
 
Also mein Vorhaben: Ein kleiner Chat bei dem man sich beim ersten start registrieren soll und diese Daten sollen dann eigentlich auf diesen Server geladen werden und sollen nur für mich sichtbar sein. ;)

jaenicke 30. Jan 2014 19:53

AW: FTP Server
 
Dafür ist ein FTP-Server absolut ungeeignet. Dafür ist eine PHP-Seite oder ähnliches auf einem Server viel sinnvoller. Die bekommt die Daten als Parameter und fertig. ;-)

Luki206 31. Jan 2014 16:59

AW: FTP Server
 
Hmm.. nur leider unterstützt der Server kein PHP.. Ich hab mir jetzt überlegt, das ganze an einen eigenen Server zu schicken. Nur ist das jetzt so, dass ich die Daten die dann von meiner Software kommen manuell verarbeiten muss. Das kann auf die Dauer nerven und deshalb habe ich mir gedacht dann den Text der auf meinem Server eingeht zu 'zerschneiden' also das ich dann aus einer bestimmten Position mit unterschiedlicher länge den Text dort rausziehe. Ich schicke das so von meiner Software an den Server:
Delphi-Quellcode:
CS.Socket.SendText('IP: '+ip+'; Nachname: '+EdNachNam.Text+'; Vorname: '+EdVornam.Text+'; Email: '+EdEmail.Text+'; Passwort: '+EdPass.Text+'; Geburtstag: '+date);

jaenicke 31. Jan 2014 19:23

AW: FTP Server
 
Abgesehen davon, dass ich eine XML- oder JSON-Codierung vorziehen würde, gibt es in PHP auch Funktionen wie split, mit denen du eine Zeichenkette ganz einfach per regulärem Ausdruck in seine Bestandteile zerlegen kannst:
http://php.net/manual/de/function.split.php

Aber was kann der Server denn überhaupt, wenn nicht einmal PHP? :?: Irgendeine Sprache wird doch gehen, oder? Sei es ASP, Perl, ...

Sir Rufo 31. Jan 2014 19:58

AW: FTP Server
 
Zitat:

Zitat von Luki206 (Beitrag 1246166)
Ich schicke das so von meiner Software an den Server:
Delphi-Quellcode:
CS.Socket.SendText('IP: '+ip+'; Nachname: '+EdNachNam.Text+'; Vorname: '+EdVornam.Text+'; Email: '+EdEmail.Text+'; Passwort: '+EdPass.Text+'; Geburtstag: '+date);

Lieber nicht. Erstelle eine Funktion(alität), die aus den Daten die Nachricht erzeugt.
Delphi-Quellcode:
function BuildMessage( const IP, Nachname, Vorname, Email, Passwort, Geburtstag {???TDate???} : string ) : string;
begin
  Result := Format( 'IP: %s; Nachname: %s; Vorname: %s; Email: %s; Passwort: %s; Geburtstag: %s', [ IP, Nachname, Vorname, Email, Passwort, Geburtstag ] );
end;

...
CS.Socket.SendText( BuildMessage( ip, EdNachName.Text, EdVornam.Text, EdEmail.Text, EdPass.Text, Date ) );
Noch besser wäre es, du befüllst mit den Daten eine Klassen-Instanz die dann daraus die Nachricht oder sogar verschiedene Nachrichten bauen kann.
Delphi-Quellcode:
// Vorher alles in die Instanz ClientData abgelegt und schwupps
CS.Socket.SendText( ClientData.LoginMessage );
Und wenn Informationen fehlen, dann kann dir die Klasse das auch sagen, dass z.B. der Nachrichtentyp xy nicht erstellt werden kann.

Auch der Aufbau der Nachrichten kann dann sehr einfach gewechselt werden (eigenes Format, JSON, XML, ...) weil das ja an einer Stelle erfolgt und nicht mehr wild verstreut an allen Stellen, wo dem Server etwas gesendet wird.

Luki206 1. Feb 2014 14:56

AW: FTP Server
 
Ah ok. Sir Rufo das von dir kann ich nachvollziehen nur heißt das jetzt, ich komme jetzt nicht an XML oder JSON dran vorbei also ich meine mit lernen?
Danke
Lukas :)

Sir Rufo 1. Feb 2014 15:12

AW: FTP Server
 
Zitat:

Zitat von Luki206 (Beitrag 1246252)
Ah ok. Sir Rufo das von dir kann ich nachvollziehen nur heißt das jetzt, ich komme jetzt nicht an XML oder JSON dran vorbei also ich meine mit lernen?
Danke
Lukas :)

Du musst nicht, aber du kannst bei Bedarf und Kenntnisstand ohne viel Aufwand wechseln.
Es gibt bei den bekannten APIs zumeist mehrere Möglichkeiten (JSON, XML, Text, ...) also gibt es da nicht wirklich ein richtig oder falsch.

Nimm das, was du auf dem Server am Besten/Schnellten umsetzen kannst.
Wenn alles läuft, dann kannst du immer noch auf XML und/oder JSON erweitern.

Per POST kannst du dem Server eine Nachricht schicken. Im Header gibt man dann so Sachen an wie die Nachricht kodiert ist (Plain Text, JSON, XML) und welches Format man zurück möchte.
Wie und was da steht ist wumpe, dein Server (dein Skript auf dem Server) muss das verstehen, niemand sonst.

Standards braucht man erst, wenn andere diese API auch nutzen wollen/sollen.

Luki206 1. Feb 2014 15:25

AW: FTP Server
 
Alles Klar, danke. Wenn ich's zum laufen gebracht habe gebe ich bescheid ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz