AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Benutzer Login mit Passwort
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzer Login mit Passwort

Ein Thema von infY2k7 · begonnen am 26. Jun 2008 · letzter Beitrag vom 27. Jun 2008
Antwort Antwort
infY2k7

Registriert seit: 21. Mai 2008
23 Beiträge
 
#1

Benutzer Login mit Passwort

  Alt 26. Jun 2008, 23:00
Hi junx!

Folgendes Problemchen: Hab mit nen paar Kumpels ein kleines tool geschrieben. Dieses wollen wir nun schützen, indem wir eine Login-Funktion einbauen.

Die Benutzer sollen sich mit einem Accountname und Password einloggen. Hier ist das Problem - ich weiß nicht wo!

Habs hingekriegt, sich auf nem mysql Server einzuloggen. Problem: kann meinen PC nicht 24/7 anlassen, d.h. ich brauch einen mysql-server im Internet der externe Zugriffe erlaubt. Ich hab stundenlang gesucht, glaubt mir, es gibt keinen kostenlosen!

Habs auch geschafft, .txt Dateien von meinem FTP-Server (host:funpic.de) runterzuladen und auszulesen, jedoch wird hier immer die ganze Datei ausgelesen.
Hier die Funktion dazu:

Delphi-Quellcode:
Function GetHTML(AUrl: string): string;//KEY-CHECK:
var
  databuffer : array[0..4095] of char;
  ResStr : string;
  hSession, hfile: hInternet;
  dwindex,dwcodelen,dwread,dwNumber: cardinal;
  dwcode : array[1..20] of char;
  res : pchar;
  Str : pchar;
begin
   ResStr:='';
   Result:='';
   if pos('http://',lowercase(AUrl))=0 then
     AUrl:='http://'+AUrl;
   hSession:=InternetOpen('InetURL:/1.0',
                       INTERNET_OPEN_TYPE_PRECONFIG,
                       nil,
                       nil,
                       0);
   If assigned(hSession) Then Try
      hfile:=InternetOpenUrl(
         hsession,
         pchar(AUrl),
         nil,
         0,
         INTERNET_FLAG_RELOAD,
         0);
      if assigned(hfile) then Try
         dwIndex := 0;
         dwCodeLen := 10;
         HttpQueryInfo(hfile,
                HTTP_QUERY_STATUS_CODE,
                @dwcode,
                dwcodeLen,
                dwIndex);
         res := pchar(@dwcode);
         dwNumber := sizeof(databuffer)-1;
         if (res ='200') or (res ='302') then begin
            while (InternetReadfile(hfile,@databuffer,dwNumber,DwRead)) AND (dwRead <>0) do begin
                  databuffer[dwread]:=#0;
                  Str := pchar(@databuffer);
                  resStr := resStr + Str;
                  Application.ProcessMessages;
            end;
         end else
             ResStr := 'Status:'+res;
      Finally
             InternetCloseHandle(hfile);
      End;
   Finally
          InternetCloseHandle(hsession);
   End;
   Result := ResStr;
end;
Ich suche eine sichere Benutzer-Login Variante. Möglichst sollten sich auch nicht 2 Benutzer in einen Account einloggen können, sonst wär es ja sinnlos. Bitte um eure Hilfe!

danke im Vorraus, mfg infY
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Benutzer Login mit Passwort

  Alt 26. Jun 2008, 23:21
Regel Nummer 1: Sicher gibt es nicht!

Und egal wo du dein Passwort versteckst, was willst du damit machen? Eine IF-Abfrage kann ich dir ratz fatz rauspatchen. Da kann dein PRogramm auf dem Mond nach Passwörtern gucken. Ich überspringe die Abfrage.

Du könntest Teile des Programms verschlüsseln, welche nur mit dem richtigen Passwort wieder entschlüsselt wird, ansonsten kommt eben kein brauchbarer Code heraus. Oder du errechnest aus den Passwörtern o.ä. wichtige Konstanten, ohne die dein Programm nicht brauchbar wäre. Du müsstest also eine Vollzeitpräsenz des Passwortes schaffen und dennoch... wenn es einmal geknackt ist, dann ist es vorbei. Lohnt sich also wirklich der Aufwand für Euch?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

Re: Benutzer Login mit Passwort

  Alt 26. Jun 2008, 23:26
HI,

einen MySQL-Server rund um die Uhr laufen zu lassen (auf einem privaten PC) finde ich nicht so gut. Du hast doch einen Account bei Funpic. Erstell dir dort ein PHP_Script, dass die Anmeldung übernimmt. Du brauchst dann auch noch eines, dass die Abmeldung übernimmt. Diese beiden PHP_Scripte haben den Zugriff auf die Funpic-MySQL-DB. Darüber regelst du den Login. Hierbei würde ich dir empfehlen, User und PW über POST zu senden, da das dann nicht mehr so leicht zu knacken ist oder nimm gleich die Checksummen.

Was beim Abmelden schwer fällt, ist dass du dich auf jeden Fall abmelden müsstest (oder du machst eine Zugriffsbeschränkung für ~2 Std. ohne Abmeldung).

Ich weiß jetzt nicht ob der Code zur VCL oder zur nonVCL gehört, aber in beiden Varianten würde ich hier IdHTTP als Träger vorschlagen.

Bernhard

EDIT: Zur Sicherheit: Es würde mich wundern, wenn du einen HTTPS-Zugriff hinbekämst.
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Benutzer Login mit Passwort

  Alt 27. Jun 2008, 02:10
Zitat von rollstuhlfahrer:
Erstell dir dort ein PHP_Script, dass die Anmeldung übernimmt. Du brauchst dann auch noch eines, dass die Abmeldung übernimmt. Diese beiden PHP_Scripte haben den Zugriff auf die Funpic-MySQL-DB. Darüber regelst du den Login.
Genau!
Dann musste dich auch nicht mit SQL injection rumschlagen, guck dir mal die Komunikation von Anwendung und externer DB unter einem Sniffer an... schrecklich
Sebastian
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Benutzer Login mit Passwort

  Alt 27. Jun 2008, 03:03
Zitat von infY2k7:
Hier ist das Problem - ich weiß nicht wo!
Muß es unbedingt eine Datenbank sein? Arbeitet euer Tool mit dieser Datenbank?

Wenn nicht, was spricht gegen eine Art Lizenz-Datei die man sich gegen eine einmalige Anmeldung am Server herunter laden kann und auf dem Rechner speichert.

Dazu generiert eurer Tool eine Art eindeutigen Computer-ID aus z.B. MAC-Adresse oder Windows-Seriennummer oder weiß der Teufel was. Zusammen mit UserName, Passwort und eben dieser ID generiert ihr eine verschlüsselten String z.B. MD5-Hash auf dem Server und schickt es dem Tool zurück, welches dann diesen String auf Platte speichert.

Beim nächsten Start, prüft euer Tool den eingegebenen UserName, Passwort und die neu ermittelte ID gegen den String in der gespeicherten Datei und schon sollte der Benutzer authentifiziert sein.

So verhinderst ihr zunächst einmal, daß euer Tool einfach weiter kopiert werden.
Auch ein Sniffer wäre sinnlos, wenn einmal die Lizenz auf dem Rechner liegt.

Und wenn ihr auf den Server noch eine Benutzerprüfung vornehmt, welcher Benutzer überhaupt eine Lizenz bekommen kann, könnt ihr auch sicher sein, dass nur gewünschte Benutzer euer Tool verwenden können.

Ob man nun einzelne Programmteil verschlüsseln muss, so wie Bernhard schreibt, weiß ich nicht.
Ich denke mal, dass man mit eurem Tool mit einem Mausklick nicht unbedingt die Weltherrschaft an sich reisen kann, so das dieser Aufwand nicht nötig sein muß.

Hier müßt ihr Sicherheit und Nutzen gegen einander abwägen.

Zu den If-Abfragen-Rauspatchen ... wenn euer Tool an mehren stellen im Code die Lizenzprüfung vornimmt, wird es schon nerviger für nen Cracker all die entsprechenden Stellen zu finden, aber nicht unmöglich.

Wie schon gesagt wurde: 100%ige Sicherheit gibt es nicht.

Vielleicht ist ja mein Vorschlag eine Idee für euch?
  Mit Zitat antworten Zitat
infY2k7

Registriert seit: 21. Mai 2008
23 Beiträge
 
#6

Re: Benutzer Login mit Passwort

  Alt 27. Jun 2008, 10:06
Okay schonmal gute Vorschläge, werd mich mal genauer damit beschäftigen..
danke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:37 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