Neu vorgestellt, Programmierung

Sichere FTP-Verbindungen mit CONZEPT 16

Der Zugriff von CONZEPT 16 auf FTP-Server ist auf Basis der Socket-Befehle möglich, ein entsprechendes Beispiel findet sich in der Code-Library. Eine verschlüsselte Übertragung ist dabei nur bei FTP-Servern mit impliziter SSL-Verschlüsselung möglich (FTPS auf Port 990), die in der Praxis selten anzutreffen sind. SFTP (basierend auf SSH) und FTP/SSL (mit explizitem SSL) sind nicht auf Basis der Socket-Funktionen realisierbar.


Wie können Daten verschlüsselt übertragen werden?

Mittels einer DLL kann CONZEPT 16 um die benötigten Funktionen erweitert werden. Dabei stehen folgende Protokolle zur Verfügung:

  • FTP (File Transfer Protocol)
  • FTP/SSL (FTP mit SSL-3.0- oder TLS-1.0-Authentifizierung)
  • FTPS (FTP mit impliziter SSL-Verschlüsselung)
  • SFTP (Secure File Transfer Protocol), basiert auf dem SSH-Protokoll

Obwohl sich die Protokolle SFTP und FTP technisch deutlich voneinander unterscheiden, können dieselben DLL-Funktionen für beide Typen verwendet werden.

Welche Funktionen bietet die DLL?

Nachdem die DLL initialisiert wurde, kann eine Verbindung zu einem Server aufgebaut werden. Bei den FTP-basierten Protokollen geschieht das mit einem Benutzernamen und einem Kennwort. Bei SFTP kann wahlweise ebenfalls diese Möglichkeit verwendet werden. Alternativ ist bei SFTP eine Authentifizierung durch Benutzer plus Client-Zertifikat mit einem optionalem Kennwort durchführbar.

Nach der Authentifizierung stehen folgende Möglichkeiten bereit:

  • Verzeichnisinhalt als Cte-Liste ermitteln
  • Verzeichnisse anlegen
  • Dateien und Verzeichnisse umbenennen und löschen
  • Prüfen, ob Dateien existieren
  • Dateien hochladen und herunterladen mit Möglichkeit der Wiederaufnahme

Beim Up- und Download von Dateien kann zusätzlich eine Callback-Funktion angegeben werden. An diese wird regelmäßig die aktuelle Prozentzahl der bisher übertragenen Daten übergeben. Über den Rückgabewert der Funktion kann entschieden werden, ob ein Abbruch des Up- bzw. Downloads erfolgen soll.

Anwendungsbeispiel – Upload einer Datei

// FTP-Modul initialisieren (Modus = Secure File Transfer Protocol)
tErr # MdlFtp:Init('C:\CONZEPT 16\c16_ftp_w32.dll', sModeSFTP);
if (tErr = _ErrOK)
{
  // Verbindung herstellen
  tErr # MdlFtp:Connect('myftp.de', 22, 'myuser', 'mypassword');
  if (tErr = _ErrOK)
  {
    // Datei 'C:\Readme.txt' in das Wurzelverzeichnis hochladen
    tErr # MdlFtp:FileUpload('C:\Readme.txt', '/Readme.txt');

    // Verbindung trennen
    MdlFtp:Disconnect();
  }

  // FTP-Modul terminieren
  MdlFtp:Term();
}

Für welche Systeme ist die DLL verfügbar?

Die DLL ist für Windows-Clients als 32- und 64-Bit-Version verfügbar. Somit kann sie vom Standard- und Advanced-Client sowie vom SOA-Service auf 32- und 64-Bit-Systemen verwendet werden. Eine Version für den SOA-Service unter Linux gibt es ebenfalls als 32- und 64-Bit-Shared-Library.

Wie können Sie die DLL erhalten?

Eine Testversion der DLL, sowie eine Datenbank mit der Schnittstelle und einem Anwendungsbeispiel stellt der vectorsoft-Support auf Anfrage zur Verfügung. In der Testversion sind alle Funktionen enthalten und können 30 Tage lang ausprobiert werden.

Sie haben Fragen oder Anregungen?

Dann scheuen Sie sich nicht, diese hier als Kommentar zu hinterlassen.

Keine Kommentare

Kommentar abgeben