Thema: Verschlüsselter FTP-Upload
-
Hi Leute!
Ich kann nun eine Datei ganz einfach auf einen FTP-Server hochladen mit folgendem Befehl:
Code :1 2 3
My.Computer.Network.UploadFile( _ "test.txt", _ "ftp://ftp-server/test.txt", "user", "password", False, 25000)
Nun kann man aber mit Programmen wie SniffPass (loggt Netzwerkverkehr mit) ganz einfach den Benutzernamen bzw. das Passwort des FTP-Server herausfinden, auf den die Datei hochgeladen wird. So könnten fremde Benutzer meines Programmes die FTP-Daten meines FTP-Servers herausfinden.
Nun wollte ich fragen, wie man Benutzername und Passwort so verschlüsseln kann, dass die Datei ohne Probleme hochgeladen wird und gleichzeitig via z.B. SniffPass niemand das Passwort herausfinden kann...
MfG
Markus
-
01.02.10 18:12 #2
- Registriert seit
- Aug 2001
- Ort
- Österreich, Stmk, Graz
- Beiträge
- 2.729
Bei FTP allein wirst kein Glück haben, da dieses Protokol nunmal unverschlüsselt ist. Eine Alternative wäre zum Beispiel FTP über SSL
Statt der von dir verwendeten Methode schau dir mal die FtpWebRequest Klasse an. Dort kannst du EnableSsl auf True setzen, und schon ist deine Verbindung gesichert.
Der FTP Server muss dies jedoch auch unterstützen.
lg,..With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
Aaron Satie
Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
Captain Jean-Luc Picard, Stardate ~41294.5
Tutorials.de chattet.
Klickt oben auf Chat, oder verbindet zu irc.tutorials.de - Channel #Tutorials.de
(moo)blog furred.net // BlogEngine.net Extensions
-
02.02.10 09:18 #3
Hey,
nur mal am Rande, auch wenn du die Tipps vom Alex beherzigst, kann der Benutzer deines Programmes trotzdem das Passwort rausbekommen!
Schau dir den .NET Reflector an.
Btw:
Hallo weasel =)Internetseite:
http://www.texturenland.de
Blog:
http://blog.texturenland.de
Codesnippets:
.NET-Snippets
- Sollte ich bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen -
-
Vielen Dank erstmal für die schnellen Antworten!
Ich habe nun FtpWebRequest verwendet (falls es das is, denke schon):
Code :1 2 3 4 5 6 7 8 9 10 11 12
Dim clsRequest As System.Net.FtpWebRequest = _ DirectCast(System.Net.WebRequest.Create("ftp://server/test.txt"), System.Net.FtpWebRequest) clsRequest.Credentials = New System.Net.NetworkCredential("user", "password") clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile Dim bFile() As Byte = System.IO.File.ReadAllBytes("test.txt") Dim clsStream As System.IO.Stream = _ clsRequest.GetRequestStream() clsStream.Write(bFile, 0, bFile.Length) clsStream.Close() clsStream.Dispose()
Ich verstehe aber leider nicht, wie ich das auf EnableSSL stelle (FTP-Daten lassen sich mit der obigen Version weiterhin herausfinden). Außerdem ist mir nicht ganz klar, was der .NET Reflector damit zu tun hat. Sry für meine Dämlichkeit was Visual Basic anbelangt
-
02.02.10 20:50 #5
- Registriert seit
- Aug 2001
- Ort
- Österreich, Stmk, Graz
- Beiträge
- 2.729
Wenn du auf EnableSsl klickt, hast ein Beispiel damit.

Konstantin meinte, dass sich das Passwort mit Reflector rausfinden lässt, da es in deiner Assembly (deinem kompilierten Programm) unverschlüsselt steht.
Wenn du das Programm nicht weitergibst, ist das jedoch kein Problem.
Hi Konstantin. Gratulation zum Sonderpreis bei den dotnet-snippets
With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
Aaron Satie
Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
Captain Jean-Luc Picard, Stardate ~41294.5
Tutorials.de chattet.
Klickt oben auf Chat, oder verbindet zu irc.tutorials.de - Channel #Tutorials.de
(moo)blog furred.net // BlogEngine.net Extensions
-
Ich habe den Einbau dieses EnableSSL in jeglichen Varianten ausprobiert, doch zeigt es mir bei der Ausführung des Programmes immer sofort einen Fehler an, obwohl in Visual Studio kein Fehler gefunden wurde.
Hier meine Version:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Dim instance As Net.FtpWebRequest Dim value As Boolean Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click value = instance.EnableSsl instance.EnableSsl = value Dim clsRequest As System.Net.FtpWebRequest = _ DirectCast(System.Net.WebRequest.Create("ftp://server/test.txt"), System.Net.FtpWebRequest) clsRequest.Credentials = New System.Net.NetworkCredential("user", "password") clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile Dim bFile() As Byte = System.IO.File.ReadAllBytes("test.txt") Dim clsStream As System.IO.Stream = _ clsRequest.GetRequestStream() clsStream.Write(bFile, 0, bFile.Length) clsStream.Close() clsStream.Dispose() End Sub
Folgender Fehler (beim Zugreifen auf "value = instance.EnableSsl"):
Code :1 2
NullReferenceException wurde nicht behandelt. Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Ok, mit Programmen wie .NET Reflector tut sich da ein zweites großes Problem auf, da ich sehr wohl vorhabe, das Programm weiterzugeben. Es wird in Zukunft wahrscheinlich von einigen Tausend Leuten verwendet werden... Und ich übertreibe nicht. Würde mir also am Herzen liegen, wenn das Passwort auch mit .NET Reflector nicht herausgefunden werden kann, aber dafür muss ich wohl ein neues Thema aufmachen, oder?
Vielen Dank einstweilGeändert von Afritus (02.02.10 um 21:46 Uhr)
-
Naja du hast noch kein FtpWebRequest-Objekt erzeugt, deswegen kommt der Fehler. Du musst das New-Keyword verwenden um eine Instanz zu erstellen! (oder System.Net.WebRequest.Create)
könnte funktionieren.Code vbnet:1
clsRequest.EnableSsl = True
-
Hab das clsRequest.EnableSsl = True nun zur Sicherheit sogar mehrmals eingebaut. Wenn ich ein "New" vor instance.EnableSsl oder vor Value setze, zeigt er mir an, dass der jeweilige Typ nicht definiert ist. Und System.Net.WebRequest.Create ist doch schon drinnen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
Public Class Form1 Dim instance As Net.FtpWebRequest Dim value As Boolean Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click value = instance.EnableSsl instance.EnableSsl = value Dim clsRequest As System.Net.FtpWebRequest = _ DirectCast(System.Net.WebRequest.Create("ftp://server/test.txt"), System.Net.FtpWebRequest) clsRequest.EnableSsl = True clsRequest.Credentials = New System.Net.NetworkCredential("user", "password") clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile clsRequest.EnableSsl = True ' read in file... Dim bFile() As Byte = System.IO.File.ReadAllBytes("test.txt") clsRequest.EnableSsl = True ' upload file... Dim clsStream As System.IO.Stream = _ clsRequest.GetRequestStream() clsStream.Write(bFile, 0, bFile.Length) clsStream.Close() clsStream.Dispose() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End Sub End Class
Danke
-
03.02.10 18:38 #9
- Registriert seit
- Aug 2001
- Ort
- Österreich, Stmk, Graz
- Beiträge
- 2.729
Code :1 2 3
value = instance.EnableSsl instance.EnableSsl = value
Diese 2 Zeilen gehen aber erst nach dem du mit Create das Objekt erstellt hast, kannst aber auch ganz weglassen.
With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
Aaron Satie
Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
Captain Jean-Luc Picard, Stardate ~41294.5
Tutorials.de chattet.
Klickt oben auf Chat, oder verbindet zu irc.tutorials.de - Channel #Tutorials.de
(moo)blog furred.net // BlogEngine.net Extensions
-
Eine Frage hätte ich noch, ist es möglich, ohne eine teure Library mit SFTP hochzuladen?
Also ein VB.NET-Code der eine Datei via SFTP hochlädt?
Vielen Dank
EDIT: Habs jetz doch hinbekommen. Falls es wen interessiert, es klappt sehr gut mit der kostenlosen Library SharpSSH.Geändert von Afritus (10.02.10 um 12:28 Uhr)
Ähnliche Themen
-
seltsamer Fehler bei Passworteingabe bei verschlüsselter swap root und home Partition
Von McMay im Forum Linux & UnixAntworten: 0Letzter Beitrag: 26.06.09, 19:36 -
Verschlüsselter Webservice
Von BillaBong im Forum PHPAntworten: 3Letzter Beitrag: 21.08.08, 10:22 -
Hilfe! Kopieren verschlüsselter Unterverzeichnisse?
Von Quiddle im Forum Sonstige SprachenAntworten: 0Letzter Beitrag: 16.05.08, 09:20 -
Problem mit verschlüsselter Verbindung und Post-Php Scripten
Von cameeel im Forum Hosting & WebserverAntworten: 0Letzter Beitrag: 08.03.07, 22:15 -
upload über upload.aspx
Von NightPain im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 25.07.06, 18:19



Zitieren

Login





Lesezeichen