Sicherstellen, dass Dateiupload auf fremdem FTP-Server beendet ist

Mitglied: phradr

phradr (Level 1) - Jetzt verbinden

09.09.2011, aktualisiert 15:09 Uhr, 4224 Aufrufe, 8 Kommentare

Hallo Forum,

ich entwerfe ein Programm, welches einen beliebigen FTP-Server nach Dateien untersucht.
Diese Dateien werden, nachdem sie von meinem Scanner erkannt wurden, verarbeitet.
Anschliessend soll die Datei verschoben oder gelöscht werden.

Das Funktioniert soweit sehr gut, bis eine Datei etwas größer ist, sodass der Upload länger als einen Scanintervall benötigt.

In genau dieser Situation möchte ich sicherstellen, dass die Datei, die von meinem Scanner an die entsprechend weiterverarbeitenden Unterprozesse weitergegeben wird, vollständig hochgeladen worden ist.


Randbedingungen:

Die Daten werden von Unbekannt auf den Server geladen - somit besteht nicht die Möglichkeit auf Filtern per Namenspre- oder postfix.
Das Verhalten der Uploader ist also nicht beeinflussbar. Damit entfällt leider die einfachste Möglichkeit.

Daher jetzt die Frage: Wie stelle ich sicher, dass der Upload beendet ist?

Eine STAT Abfrage an den FTP liefert nach meiner Recherche auch keine nutzbaren Ergebnisse.
Jede Datei, die vom Scanner gefunden wurde, zu "beobachten" (i.e. Größe der Datei zum Zeitpunkt A verglichen mit Größe von Zeitpunkt B) ist zu unsicher.

Gibt es FTP-Server Befehle die mir hier weiter helfen, von denen ich nichts weiss? Oder einen Workaround? Oder andere Ansätze?

[EDIT]
Wichtige Info die ich vergessen habe:
Mein Scanner läuft auf meinem eigenen System, die FTP-Server sind 'meist' entfernte Server. Da der Scanner auf unterschiedlichen System nach Dateien scannt ist mir eine einheitliche Lösung lieber, als vorher noch zu überprüfen, ob es sich um einen FTP-Server bei mir handelt.
[/EDIT]


Ich bin für jeden Tip dankbar.

Grüße

bombaaa
Mitglied: bytecounter
09.09.2011 um 14:57 Uhr
Hallo,

wäre noch interessant zu wissen, ob Dein Tool auf der gleichem Maschine wie der FTP-Server läuft, denn dann kannst Du ja recht einfach prüfen, welche Dateien gerade per FTP geschrieben werden.

vg
Bytecounter
Bitte warten ..
Mitglied: phradr
09.09.2011 um 14:59 Uhr
Wohl wahr,
tut es aber leider nicht.

ich ergänze das ebend im Mainbeitrag
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
09.09.2011 um 15:13 Uhr
moin,

am einfachsten - ui ui ui - wo fange ich an...

  • jeder Account darf sich nur einmalig anmelden - versucht dein Programm sich anzumelden - und das klappert nicht - muß ein anderer bereits angemeldet sein, oder was anderes passt nicht.

  • Nachteil - wurde dieser jene wegen Provider oder xyz rausgeworfen - bist du nicht sicher, ob die Datei nicht doch nochmal "Nachwuchs" bekommt und du sperrst den dann durch dein Tool.

Von daher: eher
  • solange jemand an einer Datei "werkelt", kannst du die nicht umbenamsen - ergo klappert ein ren original - tempo nur dann, wenn niemand auf die datei zugreift.

Das sind alles Würgarounds - die man nehmen kann - im idealfall hat man das Log der Maschine und wertet das aus - wenn einer per Timeout rausgeflogen ist - sollte in dem fall
Jede Datei, die vom Scanner gefunden wurde, zu "beobachten" (i.e. Größe der Datei zum Zeitpunkt A verglichen mit Größe von Zeitpunkt B) ist zu unsicher.

Eher der sicherererer Weg sein.

Denn auch das solltest du beachten.

Gruß



Edit

Nun dann... wenn die Kiste nicht die eigene ist...

  • kombination aus Dateigröße und doppeltem rename.

Anders wird das nix. Denn wenn es was geben würde - wäre das eine Sicherheitslücke.
Bitte warten ..
Mitglied: phradr
09.09.2011 um 15:20 Uhr
Mein Problem dabei ist ja, dass ich über den FTP-Server im normal Fall nicht mehr weiß als seine IP und meine Zugangsdaten. Ich Schau aber mal, ob ich ein manuelles rename implementieren kann, dass beobachtet ob die Datei bereits fertig geschrieben ist. Danke für die Idee ;)
Bitte warten ..
Mitglied: bytecounter
09.09.2011 um 15:21 Uhr
In dem Fall fällt mir auch nur der bereits von Timo genannte Trick mit der temporären Umbenennung ein. Per FTP kannst Du Stati anzeigen lassen, die Deine Verbindung betreffen. Also ob und was gerade von anderen hochgeladen wird, kannst Du nicht per FTP feststellen.

vg
Bytecounter
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
09.09.2011 um 15:23 Uhr
;-) face-wink

du solltest im Fehlerfall eine 450 vom Server erhalten.

gruß
Bitte warten ..
Mitglied: phradr
09.09.2011 um 15:35 Uhr
Ich hab mich jetzt für eine 'entspanntere' Variante entschieden. Ich speichere die Größe einer Datei im ersten Scandurchlauf. Sollte sie sich bis zum zweiten Scandurchlauf nicht verändert haben, wird die Datei erst für die weitere Verarbeitung freigegeben.

Das Umbenennen kann ich über dies schlecht machen, da ich nie weiss, welche Rechte mir ein FTP-Server einräumt. Ich will ja auch tunlichst verhindern, dass ich einem Uploader die Datei die er gerade hochlädt unterm A... lllerwertesten wegreisse.

Trotzdem vielen Dank.
Bitte warten ..
Mitglied: ITwissen
09.09.2011 um 17:13 Uhr
Eine 100%-ige Sicherheit hast du mit dem Verfahren (zweimal schauen und sehen ob sie sich verändert) nicht. Denn im ungünstigsten Fall kann es immernoch passieren, dass der "Uploader" gerade die Verbindung unterbrochen hat, während du zweimal schaust und nach dem zweiten Check geht der Upload weiter.

100%-ige Sicherheit bekommst du nur, wenn du System Zugriff auf die FTP-Server hast. Oder ein die "Fremden" etwas anderes wie FTP-Upload anbieten kannst.

Eventuell hilft dir die Art der Dateien, die auf den Server geladen werden weiter. Einige Dateiformate haben eine interne Checksumme, z.B. ZIP.
Bitte warten ..
Heiß diskutierte Inhalte
Microsoft
Mitteilung an alle bei Störungen in der IT
gelöst David.B2D45Vor 1 TagFrageMicrosoft31 Kommentare

Hallo Forum, ich bin auf der Suche nach einem Programm / Tool mit dem ich Text (Laufschrift) auf allen (gewünschten) PC's / Benutzer im ...

Exchange Server
Exchange Zero Day Hack - Wie entfernen?
gelöst mtaiitVor 18 StundenFrageExchange Server28 Kommentare

Hallo, bei mir hat es einige Kundenserver getroffen Weiß einer wie ich diese WebShells wieder loswerde? Das löschen der betroffenen .aspx Dateien wird wohl ...

E-Mail
Kann man mit SPF Mails für eine Domäne vollständig verbieten?
gelöst StefanKittelVor 1 TagFrageE-Mail17 Kommentare

Hallo, viele Firmen haben ja zusätzliche Domänen. Als Web- und oder Mail-weiterleitung. Es werden also niemals Emails damit gesendet werden. kann man mit einem ...

Server-Hardware
Firmware-Updates auf Servern
redhorseVor 1 TagFrageServer-Hardware8 Kommentare

Guten Morgen, die Server-Hersteller stellen bekanntlich regelmäßig Firmware- und Treiberupdates für deren Serverhardware bereit, diese können z.B. bei Dell als Dell EMC Server Update ...

Linux
Windows auf Dualbootrechner entfernen und Linux die komplette Platte zur Verfügung stellen
N8chtfalterVor 1 TagFrageLinux6 Kommentare

Hallo Linux Profis, ich habe einen Laptop auf dem ursprünglichen Windows 10 installiert war, und ist, ich habe vor einem Jahr Ubuntu testhalber als ...

Router & Routing
Routing öffentliche IP-Adresse-Traffic per BGP im internal-Network
gelöst jescheroVor 1 TagFrageRouter & Routing2 Kommentare

Guten Abend alle zusammen, ich habe ein kleines Problem beim Routing in pfSense. Mein aktuelles Aufbau ist folgenden: Ich habe eine pfSense-VM und zwei ...

Windows Server
Domänenadmin kann kein Zertifikat anfordern
noodellsVor 1 TagFrageWindows Server6 Kommentare

Hallo Zusammen, ich habe ein Problem beim Finden einer Einstellung. Zuerst einmal der Stand: Es gibt eine Windows CA und Domaincontroller und alles funktionierte ...

Exchange Server
Windows Server 2019 + Exchange Server 2019 (Probleme mit Pop3)
gelöst aristonVor 1 TagFrageExchange Server4 Kommentare

Hallo zusammen, ich habe gerade angefangen, mit dem Exchange Server 2019 in der Demoversion zu arbeiten und folge Schritt für Schritt bei der notwendigen ...