Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Logindaten absichern (https://www.delphipraxis.net/116503-logindaten-absichern.html)

steppo 30. Jun 2008 21:58


Logindaten absichern
 
Hallo zusammen,

ich möchte für meine Software eine Update-Möglichkeit schaffen.
Dies soll wie folgt aussehen. Der User klickt auf Update, eine Verbindung zum FTP-Server wird aufgebaut und die erforderlichen Dateien heruntergeladen. Das ganze verwirkliche über Indy-Client-komponenten.

So weit, so gut. Bis hier funktioniert alles.

Mein Problem ist die Sicherheit.

Die Logindaten stehen als Strings im Quellcode. Öffne ich nun die *.exe mit z.B. Notepad so finde ich die Logindaten in Klarschrift vor.

Wie kann ich das ganze absichern, oder welcher Weg ist besser geeignet?

Gruß Steppo

Apollonius 30. Jun 2008 22:01

Re: Logindaten absichern
 
Der Netzwerkverkehr lässt sich mit Leichtigkeit mitlesen, es gibt also keine sichere Lösung von der Form "nur mein Programm kennt das Passwort, der Benutzer aber nicht". Du musst erreichen, dass man ohne ein Passwort genau die nötigen Rechte hat, das Update herunterzuladen, aber nicht mehr.
Eine Möglichkeit wäre, statt FTP HTTP zu verwenden und ein PHP-Script zu schreiben, welches ausschließlich die Update-Dateien herausgibt.

Matze 30. Jun 2008 22:04

Re: Logindaten absichern
 
Hallo,

sicher sind deine Logindaten nie, wenn du sie in der Exe mitlieferst. Ich würde daher folgendes machen:

Du schreibst ein kleines PHP-Skript, das vom Updater aufgerufen wird und das die Verbindung zum FTP-Server herstellt (falls es dann noch erforderlich sein sollte). Das Skript gibt dir daraufhin die Datei zurück. Das hat auch den Vorteil, dass du leicht eine Versionsüberprüfung einbauen könntest. Dazu kannst du dem Skript beispielsweise als Parameter die aktuelle Version übergeben und dies schaut nach, ob eine neuere verfügbar ist, wenn nicht, wird auch nichts heruntergeladen und es kann eine entsprechende Meldung ausgegeben werden.

Doch ich schweife ab. ;)

Grüße

Edit: Was macht Philip denn um diese Uhrzeit hier. *g* Da war ich wohl zu langsam.

steppo 30. Jun 2008 22:19

Re: Logindaten absichern
 
Hallo Apollonius, Hallo Matze

Ihr meint ich soll über mein Programm ein Php-Script starten welches dann die benötigten Dateien (es handelt sich um mehrere) zum User schickt. Habe ich das richtig verstanden?

Wohin sollen die Daten geschickt werden? Wie gelangen sie in das richtige Verzeichnis beim User?

Zudem handelt es sich um Tabellen. Diese haben die Endung *.db und werden somit vom IE nicht erkannt(sowie *.exe,*.rar,*.zip).

Mir ist eure Vorgehensweise nicht klar.

Gruß Steppo

Matze 30. Jun 2008 22:26

Re: Logindaten absichern
 
Hi,

hm stimmt. Ich wüsste nicht, wie man da den Speicherpfad angeben kann. :gruebel:

Muss es denn FTP sein? Das einfachste wäre vermutlich über HTTP zu gehen, da du dort keine Zugangsdaten benötigst.

steppo 30. Jun 2008 22:41

Re: Logindaten absichern
 
Es muß kein FTP sein!

Die Vorteile wären aber:
- Ein Verzeichnis runterladen (zumindest die Dateien in einem Verzeichnis)
- Einfache Handhabe für den User, da das Zielverzeichnis im Programm ermittelt werden kann
- Versionabgleich (habe ich noch nicht geprüft)

Ich dachte an die Vorgehensweise von AntiVir. Udater startet und neue Versionen werden in richtiges Verzeichnis importiert.

Werde jetzt schluß machen und morgen wieder im Forum vorbei schauen.

Gute Nacht allerseits und danke für die bisherigen Antworten.

Gruß Steppo

alcaeus 30. Jun 2008 22:56

Re: Logindaten absichern
 
Hallo allerseits,

Zitat:

Zitat von steppo
Ihr meint ich soll über mein Programm ein Php-Script starten welches dann die benötigten Dateien (es handelt sich um mehrere) zum User schickt. Habe ich das richtig verstanden?

Nicht ganz. Du rufst ein Script auf, welches auf einem Server laeuft. Ein Beispiel dafuer waere zum Beispiel ueber Indy. Starten ist das nicht wirklich ;)

Zitat:

Zitat von steppo
Wohin sollen die Daten geschickt werden? Wie gelangen sie in das richtige Verzeichnis beim User?

Eine rein anwendungstechnische Frage. Kurze Antwort: das Programmverzeichnis ist der falsche Ort dafuer (Schreibrechte etc.). Der Temp-Ordner wuerde sich anbieten, alternativ kann auch ein Ordner im AppData-Verzeichnis des Users herhalten. Den Pfad dafuer kriegst du ueber die Umgebungsvariablen, Hier im Forum suchenGetEnvironmentVariable waere ein Suchbegriff dafuer.

Zitat:

Zitat von steppo
Zudem handelt es sich um Tabellen. Diese haben die Endung *.db und werden somit vom IE nicht erkannt(sowie *.exe,*.rar,*.zip).

Wenn du es ueber Indy machst, ist der IE kein Problem. Du erhaelst das, was das Script dir schickt. Was du am Ende damit machst ist dein Problem. Du kannst es in einer Datei speichern, in einer MessageBox anzeigen, oder was auch immer.

Noch ein kleiner Hinweis: nachdem das wohl eine Art Update-Funktion werden soll solltest du eine eigene Anwendung schreiben, die das Update installiert. Das Problem ist dass du z.B. unter Vista wahrscheinlich keine Schreibrechte im Programmordner hast, selbst wenn du Administrator bist. Selbst wenn du nicht Vista verwendest ist es sehr gewagt anzunehmen dass du Admin bist. Du muesstest also eine Anwendung schreiben, die sich ueber eine Hier im Forum suchenManifest-Datei als Admin startet und nach dem Runterladen der Dateien diese ins richtige Verzeichnis schiebt. Alles andere wird ueber kurz oder lang fehlschlagen und sorgt nur fuer Aerger. Nur meine 2 Cent ;)

Greetz
alcaeus

Luckie 1. Jul 2008 08:23

Re: Logindaten absichern
 
Warum müssen die Updates überhaupt in einem geschützten order liegen? Ohne die Hauptanwendung sollten sie ja eigentlich wertlos sein. Ich würde einen zweiten anonymen FTP-Zugang anlegen und die Updates in einen öffentlich zugänglichen (natürlich ohne Schreibrechte) Ordner ablegen.

sx2008 1. Jul 2008 08:28

Re: Logindaten absichern
 
Für sicheren Dateidownload gibt es die Protokolle Secure-FTP oder HTTPS.
Dabei dürfte HTTPS weniger Aufwand bedeuten, da es deutlich mehr HTTPS-Server (Apache, IIS, ...) gibt als Secure-FTP Server.
Auch Clientseitig kann man davon profitieren, dass jeder Webbrowser das HTTPS schon mitbringt.
Dazu kann man z.B. WinHttpRequest verwenden: http://msdn.microsoft.com/en-us/libr...25(VS.85).aspx

Matze 1. Jul 2008 08:40

Re: Logindaten absichern
 
Zitat:

Zitat von sx2008
Für sicheren Dateidownload gibt es die Protokolle Secure-FTP oder HTTPS.

Das bringt meiner Meinung nach hier nichts. Die Daten werden zwar verschlüsselt übertragen, doch die Zugangsdaten müssen dennoch in der Anwendung gespeichert und können somit ausgelesen werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:32 Uhr.
Seite 1 von 2  1 2      

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